This mono repo contains packages that together make up Neo4j's Cypher Language support. We provide support for editors used in Neo4j Console and also in our VS Code extension.
- Syntax highlighting
- Autocompletion
- Linting
- Formatting
- Signature help
- Hover information
The project comprises several packages:
- language-support - The core library implementing the language support features.
- language-server - The language server wrapper for the
language-supportpackage. - vscode-extension - The Neo4j VS Code extension which bundles the
language-server. - react-codemirror - A set of codemirror 6 Cypher language support plugins and a react wrapper.
- react-codemirror-playground - A playground for the codemirror integration.
- query-tools - An internal package we use to manage the Neo4j connection and keep the schema (procedure names, labels, database names, etc.) up to date in the language server.
- lint-worker - An internal package we use to create worker files for our lint jobs.
flowchart TD
subgraph CLS[Cypher Language Support]
direction TD
VSE(vscode-extension)
RCP(react-codemirror-playground)
RCM(react-codemirror)
LS(language-server)
POLLER(schema-poller)
subgraph LT[language tooling]
LSUPPORT(language-support)
LINTWORKER(lint-worker)
end
subgraph Neo4j [Neo4j Mono Repo]
direction TD
GRAMMAR(ANTLR4 Grammar)
SA(SemanticAnalysis)
end
RCP -->|used to demo| RCM
VSE -->|bundles and launches|LS
LS -->|powered by|LT
RCM -->|powered by|LT
LS -->|used to manage neo4j connection|POLLER
LSUPPORT -->|Import ANTLR4 Cypher grammar & semantic analysis compiled to js|Neo4j
end
The project is in an early stage. We are still missing features and the project is not yet stable. We welcome feedback and contributions!
Try it out in our demo, in Neo4j Console or in vscode.
See CONTRIBUTING.md.