diff --git a/README.md b/README.md index 17b850f..8de5cfc 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,50 @@ -# LSP Example +
+ + + + + +
-## Functionality +Validates that Cicero templates conform to the [Accord Project Template Specification](https://docs.accordproject.org): -This Language Server works for plain text file. It has the following language features: -- Completions -- Diagnostics regenerated on each file change or configuration change +- Validates the model for the template ('.cto' files), downloading referenced external models as required +- Validates the logic of the template ('.ergo' files) +- Validates that the template archive can be built +- Validates that the 'text/sample.md' file for the template can be parsed using the grammar ('text/grammar.tem.md' file) +- Syntax highlighting for all files -It also includes an End-to-End test. +## For Template Authors -## Structure +If you want to use this plugin: + +1. Download and install VSCode from https://code.visualstudio.com/download +2. Remove any existing versions of the Ergo extension and the Hyperledger Composer extension +3. From the extensions view in VSCode, search for "Accord Project", click the `Install` button to install it + +The extension is available from the Visual Studio Marketplace at https://marketplace.visualstudio.com/items?itemName=accordproject.cicero-vscode-extension + +## Snippets + +### For Concerto + +We provide snippets generation for all the class method present in the Concerto languages. + +| Classes | Prefix | +| :---------- | :---------: | +| Asset | asset | +| Participant | participant | +| Transaction | transaction | +| Concept | concept | +| Enum | enum | + +## For Contributors + +### Structure ``` . @@ -24,7 +58,7 @@ It also includes an End-to-End test. └── server.ts // Language Server entry point ``` -## Running the Sample +### Running - Run `npm install` in this folder. This installs all necessary npm modules in both the client and server folder - Open VS Code on this folder. @@ -33,6 +67,356 @@ It also includes an End-to-End test. - Select `Launch Client` from the drop down. - Run the launch config. - If you want to debug the server as well use the launch configuration `Attach to Server` -- In the [Extension Development Host] instance of VSCode, open a document in 'plain text' language mode. - - Type `j` or `t` to see `Javascript` and `TypeScript` completion. - - Enter text content such as `AAA aaa BBB`. The extension will emit diagnostics for all words in all-uppercase. + +### Manual Build and Install + +Generate the installable VSIX file: + +``` +git clone https://github.com/accordproject/cicero-vscode-extension.git +npm install +npm run package:vsix +``` + +1. Launch VSCode +2. View > Extensions +3. Press the ... and select "Install from VSIX" +4. Browse to the VSIX file +5. Install and restart VSCode +6. Open a .cto or .ergo file + +### Travis CI build + +Developers no longer need a manual build, once you have created a pull request from your private Github repository. The build will be automatically performed by Travis. +A successful build will create an installable VSIX file on the build machine. +The public release version number is defined in the Client package.json file. + +#### Publish Release + +Below are steps for publishing a release. + +1. Go to https://github.com/accordproject/cicero-vscode-extension +2. Click Releases tab +3. Click Draft a new release on the right +4. Type a Tag version in the Tag version field. e.g. v0.5.7.1 +5. Type a Release title in the Release title field e.g v0.5.7.1 +6. Provide a short description of this release under the Write tab +7. Uncheck the box for This is a pre-release at the end of this page +8. Click Publish release button to publish the VSIX file to the VSCode Marketplace + +#### Check the published release + +1. Go to the VSCode Marketplace: https://marketplace.visualstudio.com/ +2. Type Accord Project in the search field and hit return key or search button +3. This will bring you to https://marketplace.visualstudio.com/search?term=Accord%20Project&target=VSCode&category=All%20categories&sortBy=Relevance + +#### Install a new release + +1. Open Visual Studio Code in your desktop +2. Open the Extensions by View-->Extensions or Ctrl(cmd)+Shift+x +3. Search for Accord Project +4. The new published Accord Project plugin is showing on the list +5. Click Install button to install it +6. Update button will be shown if you have already installed the same plugin before. + +## Acknowledgments + +Thanks to our friends at Hyperledger Composer for inspiring us with their existing plugin, +https://github.com/hyperledger/composer-vscode-plugin/ + +--- + ++ + + +
+ +Accord Project is an open source, non-profit, initiative working to transform contract management and contract automation by digitizing contracts. Accord Project operates under the umbrella of the [Linux Foundation][linuxfound]. The technical charter for the Accord Project can be found [here][charter]. + +## Learn More About Accord Project + +### Overview + +- [Accord Project][apmain] +- [Accord Project News][apnews] +- [Accord Project Blog][apblog] +- [Accord Project Slack][apslack] +- [Accord Project Technical Documentation][apdoc] +- [Accord Project GitHub][apgit] + +### Documentation + +- [Getting Started with Accord Project][docwelcome] +- [Concepts and High-level Architecture][dochighlevel] +- [How to use the Cicero Templating System][doccicero] +- [How to Author Accord Project Templates][docstudio] +- [Ergo Language Guide][docergo] + +### Ecosystem + +#### Core libraries: + +Projects | +Package name | +Version | +Description | +|
---|---|---|---|---|
Cicero | +cicero-core | ++ | Templates Core | +|
+ | cicero-cli | ++ | Cicero CLI | +|
+ | cicero-engine | ++ | Node.js VM based implementation of Accord Project Template Specification execution | +|
+ | cicero-server | ++ | Wraps the Cicero Engine and exposes it as a RESTful service | + |
+ | cicero-test | ++ | Testing support for Cicero based on cucumber | +|
+ | cicero-tools | ++ | Cicero Tools | +|
+ | generator-cicero-template | ++ | Code generator for a Cicero Template | +|
Concerto | +concerto-core | ++ | Core Implementation for the Concerto Modeling Language | +|
+ | concerto-tools | ++ | Tools for the Concerto Modeling Language | +|
+ | concerto-cli | ++ | command-line interface for Concerto | +|
Ergo | +ergo-cli | ++ | Ergo CLI | +|
+ | ergo-compiler | ++ | Ergo compiler | +|
+ | ergo-test | ++ | Ergo test | +|
+ | ergo-engine | ++ | Ergo engine | +|
Markdown | +markdown-common | ++ | A framework for transforming markdown | +|
+ | markdown-slate | ++ | Transform markdown to/from CommonMark DOM | +|
+ | markdown-cli | ++ | CLI for markdown transformations. | +|
+ | markdown-cicero | ++ | CiceroDOM: Markdown extensions for contracts, clauses, variables etc. | +|
+ | markdown-html | ++ | Transform CiceroDOM to HTML | +
Projects | +Package name | +Version | +Description | +
---|---|---|---|
Markdown Editor | +markdown-editor | ++ | +WYSIWYG rich text web editor that persists text as markdown. Based on Slate.js | +
Cicero UI | +cicero-ui | ++ | WYSIWYG contract editor, template library browser, error panel component | +
Concerto UI | +concerto-ui | ++ | Dynamic web forms generated from Concerto models | +
Projects | +Cicero ver. | +Description | +
---|---|---|
Template Studio v1 | +0.13.4 | +Web UI for creating, editing and testing Accord Project templates | +
Template Studio v2 | +0.13.4 | +Web UI for creating, editing and testing Accord Project templates | +
VSCode Extension | +0.13.4 | +VS Code extension for editing Cicero templates and Ergo logic | +
Projects | +Description | +
---|---|
Models | +Accord Project Model Library | +
Template Library | +Accord Project Template Library | +
Project | +Repo | +
---|---|
Documentation | +techdocs | +