-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move IntelliJ LSP plugin to language support repo. #156
Conversation
This is all WIP right now: * Figure out how to build this for release * Sanity check of the configuration/properties ** More information in the plugin descriptor * Icon needed :) Co-authored-by: Rob Steward <[email protected]>
signPlugin { | ||
certificateChain.set(System.getenv("CERTIFICATE_CHAIN")) | ||
privateKey.set(System.getenv("PRIVATE_KEY")) | ||
password.set(System.getenv("PRIVATE_KEY_PASSWORD")) | ||
} | ||
|
||
publishPlugin { | ||
// alpha, beta or eap | ||
channels.set(listOf("beta")) | ||
token.set(System.getenv("PUBLISH_TOKEN")) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume these are needed to release the plugin?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, when/if we plan to release it on the official way. I kept the placeholders to not have to figure those parameters out later.
## Build and run | ||
|
||
* Build the plugin via `./gradlew buildPlugin`. | ||
* Choose the plugin's zip archive from `build/distributions/cypher-lsp-support-<version>.zip` when installing it manually in IntelliJ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice 💃. This is only 1.1MB by the way, similar to the VSCode plugin
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome 💃 . Only two nitpicks:
- Is there any way to tell Gradle to copy the
cypher-language-server.js
file from the generated typescript packages instead of duplicating it? - Maybe we can have the neo4j logo as plugin icon?
@@ -0,0 +1,7 @@ | |||
# Neo4j Cypher LSP support for IntelliJ | |||
|
|||
## Build and run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe say it needs JDK 17?
That's where my lack of JS knowledge kicks in: There is no generated version available, right? So the build script would need to create one from the sources and place it there.
Yes, I think that Neo4j still represent Cypher the best but couldn't find any svg logo :( |
I think you can find a neo4j icon here: https://www.neo4j.design/40a8cff71/p/444d31-downloads-overview |
Unfortunately they are all just pngs/jpgs. The only svg is a white full logo. :( |
named("prepareSandbox") { | ||
doFirst { | ||
exec { | ||
commandLine("bash", "-c", "cd ../.. && npm run build && cp packages/language-server/dist/cypher-language-server.js ./editor-plugin/intellij") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
npm run build
should have the result cached if already compiled and nothing changed so it's not that inefficient
doFirst { | ||
exec { | ||
commandLine("bash", "-c", "rm -rf *.js") | ||
} | ||
} | ||
} | ||
|
||
named("prepareSandbox") { | ||
prepareSandbox { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks even more like we know what we are doing now 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😂
This is all WIP right now: