Skip to content
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

Merged
merged 8 commits into from
Dec 20, 2023

Conversation

meistermeier
Copy link
Contributor

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 :)

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]>
@ncordon ncordon self-assigned this Dec 15, 2023
@ncordon ncordon self-requested a review December 15, 2023 12:51
Comment on lines +37 to +47
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"))
}
Copy link
Collaborator

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?

Copy link
Contributor Author

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
Copy link
Collaborator

@ncordon ncordon Dec 18, 2023

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

Copy link
Collaborator

@ncordon ncordon left a 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:

  1. Is there any way to tell Gradle to copy the cypher-language-server.js file from the generated typescript packages instead of duplicating it?
  2. Maybe we can have the neo4j logo as plugin icon?

@@ -0,0 +1,7 @@
# Neo4j Cypher LSP support for IntelliJ

## Build and run
Copy link
Collaborator

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?

@meistermeier
Copy link
Contributor Author

Is there any way to tell Gradle to copy the cypher-language-server.js file from the generated typescript packages instead of duplicating it?

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.

Maybe we can have the neo4j logo as plugin icon?

Yes, I think that Neo4j still represent Cypher the best but couldn't find any svg logo :(

@OskarDamkjaer
Copy link
Collaborator

I think you can find a neo4j icon here: https://www.neo4j.design/40a8cff71/p/444d31-downloads-overview

@meistermeier
Copy link
Contributor Author

meistermeier commented Dec 19, 2023

Unfortunately they are all just pngs/jpgs. The only svg is a white full logo. :(
Edit: Maybe I am blind and would be happy to get it this easy.

named("prepareSandbox") {
doFirst {
exec {
commandLine("bash", "-c", "cd ../.. && npm run build && cp packages/language-server/dist/cypher-language-server.js ./editor-plugin/intellij")
Copy link
Collaborator

@ncordon ncordon Dec 20, 2023

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 {
Copy link
Contributor Author

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 😄

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😂

@ncordon ncordon merged commit c83dcd0 into neo4j:main Dec 20, 2023
4 checks passed
@ncordon ncordon deleted the intellij-lsp branch December 20, 2023 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants