diff --git a/docs/wiki/images/hover_intellij.png b/docs/wiki/images/hover_intellij.png
new file mode 100644
index 00000000..10858d87
Binary files /dev/null and b/docs/wiki/images/hover_intellij.png differ
diff --git a/src/intellij/contextive/README.md b/src/intellij/contextive/README.md
new file mode 100644
index 00000000..ae1db07f
--- /dev/null
+++ b/src/intellij/contextive/README.md
@@ -0,0 +1,72 @@
+# Contextive README
+
+Contextive is an IntelliJ Platform Plugin to assist developers in environments with a complex domain or project specific language, where words have a special meaning in the context of the project.
+
+It should help new team members get up to speed more quickly in understanding domain-specific terms. By storing the term definitions in your repository, and surfacing the definitions as you work on the code, it encourages the use of the domain-specific terms in your code, and regularly updating the definitions as the team's understanding evolves.
+
+
+
+## Getting Started
+
+Create a folder in your project root called `.contextive`. Create a file in that folder called `definitions.yml`.
+
+Start defining your definitions following the schema specified in our [usage guide](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md). You might like to start by copying our [default definitions](https://github.com/dev-cycles/contextive/blob/main/src/language-server/Contextive.LanguageServer.Tests/DefinitionsInitializationTests.Default%20Definitions.verified.txt) file that defines the terms used in the definitions file itself.
+
+## Supported IDEs
+
+The plugin uses the IntelliJ Language Server Protocol support, so it's only available in the IDEs where that feature is offered. See the [JetBrains LSP Documentation](https://plugins.jetbrains.com/docs/intellij/language-server-protocol.html#supported-ides) for the latest list.
+
+At time of writing, it includes:
+
+* IntelliJ IDEA Ultimate
+* WebStorm
+* PhpStorm
+* PyCharm Professional
+* DataSpell
+* RubyMine
+* CLion
+* Aqua
+* DataGrip
+* GoLand
+* Rider
+* RustRover
+
+## Usage Guide
+
+See our [usage guide](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md) for details on the definitions file format and available options.
+
+## Features
+
+* [Auto-complete](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#smart-auto-complete) from your Contextive Definitions
+ * Shows definitions in auto-complete details
+* Hover to show definitions from your Contextive Definitions
+ * Hover over elements with [suffixes & prefixes](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#suffixes-and-prefixes)
+ * Hover over usage of [multiple terms](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#combining-two-or-more-terms) combined using camelCase, PascalCase and snake_case
+ * Hover over [multi-word](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#multi-word-terms) terms
+ * Hover over [plural](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#plural-words) of defined terms
+ * Hover over [aliases](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#term-aliases) of defined terms
+* Supported Repository Layouts:
+ * A [repository per context](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#multiple-bounded-contexts-repository-per-context)
+ * [Multiple contexts in the same repository](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#multiple-bounded-contexts-single-repository-single-root-monorepo) (monorepo) (identified by path globs)
+ * Context distributed over [multiple repositories](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#single-bounded-context-multiple-repositories) (#36)
+ * [Multi-root workspaces](https://github.com/dev-cycles/contextive/blob/main/docs/wiki/USAGE.md#multiple-bounded-contexts-multi-root-shared-definitions-file)
+* Works in all files
+
+### Coming Soon
+
+* IDE command to initialize the definitions file
+* Configure different location for the definitions file
+* UI to edit/manage Contextive Definitions
+* Internationalization support
+* Support for multiple contexts in separate repositories
+* Better support for key word identification in different languages (e.g. different syntax delimiters)
+
+## Plugin Configuration
+
+The plugin does not currently support configuration. The definitions file _must_ be in `./contextive/definitions.yml` in your current project folder.
+
+This is pending IntelliJ support for the LSP `workspace/configuration` feature.
+
+## Known Issues
+
+* Not configurable - see [Plugin Configuration](#plugin-configuration)
\ No newline at end of file
diff --git a/src/intellij/contextive/build.gradle.kts b/src/intellij/contextive/build.gradle.kts
index ae9841e7..497e7f4a 100644
--- a/src/intellij/contextive/build.gradle.kts
+++ b/src/intellij/contextive/build.gradle.kts
@@ -36,12 +36,17 @@ tasks {
patchPluginXml {
sinceBuild.set("233")
- untilBuild.set("233.*")
+ untilBuild.set("241.*")
}
signPlugin {
- certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
- privateKey.set(System.getenv("PRIVATE_KEY"))
+ certificateChain.set(
+ System.getenv("CERTIFICATE_CHAIN") ?:
+ File(System.getenv("CERTIFICATE_CHAIN_PATH")).readText(Charsets.UTF_8)
+ )
+ privateKey.set(System.getenv("PRIVATE_KEY") ?:
+ File(System.getenv("PRIVATE_KEY_PATH")).readText(Charsets.UTF_8)
+ )
password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
}
diff --git a/src/intellij/contextive/src/main/resources/META-INF/plugin.xml b/src/intellij/contextive/src/main/resources/META-INF/plugin.xml
index b629b900..f8fe74c9 100644
--- a/src/intellij/contextive/src/main/resources/META-INF/plugin.xml
+++ b/src/intellij/contextive/src/main/resources/META-INF/plugin.xml
@@ -14,21 +14,336 @@
Simple HTML elements (text formatting, paragraphs, and lists) can be added inside of tag.
Guidelines: https://plugins.jetbrains.com/docs/marketplace/plugin-overview-page.html#plugin-description -->
It should help new team members get up to speed more quickly in understanding domain-specific terms. By storing the term definitions in your repository, and surfacing the definitions as you work on the code, it encourages the use of the domain-specific terms in your code, and regularly updating the definitions as the team's understanding evolves.
- -See https://github.com/dev-cycles/contextive for details.
+ +Contextive is an IntelliJ Platform Plugin to assist developers in environments with a complex domain or project specific language, where words have a special meaning in the context of the project.
+It should help new team members get up to speed more quickly in understanding domain-specific terms. By storing the term definitions in your repository, and surfacing the definitions as you work on the code, it encourages the use of the domain-specific terms in your code, and regularly updating the definitions as the team's understanding evolves.
+ + +Create a folder in your project root called .contextive
. Create a file in that folder called definitions.yml
.
Start defining your definitions following the schema specified in our usage guide. You might like to start by copying our default definitions file that defines the terms used in the definitions file itself.
+ +The plugin uses the IntelliJ Language Server Protocol support, so it's only available in the IDEs where that feature is offered. See the JetBrains LSP Documentation for the latest list.
+At time of writing, it includes:
+See our usage guide for details on the definitions file format and available options.
+ +The plugin does not currently support configuration. The definitions file must be in ./contextive/definitions.yml
in your current project folder.
This is pending IntelliJ support for the LSP workspace/configuration
feature.
workspace/configuration
(#58) (7e06396)vscode-languageclient
fixed by update. (fixes #44) (a3f7ed8)This is a release label attached to the existing v0.0.1-beta release, in order to serve as a baseline for starting to use semantic-release to manage releases.
+contextive.path
configuration parameter which defines which file contains the definitions