Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cypher Editor
Search
Dmitrijs Vrublevskis
June 05, 2017
Programming
0
140
Cypher Editor
Dmitrijs Vrublevskis
June 05, 2017
Tweet
Share
More Decks by Dmitrijs Vrublevskis
See All by Dmitrijs Vrublevskis
Cypher in JetBrains IDE
fylmtm
0
190
Adopting Neo4j @ Enterprise scale
fylmtm
0
71
League of Graphs \w Neo4j
fylmtm
0
1.5k
Performance & Stability testing \w Gatling
fylmtm
0
230
Neo4j Magic Adventures
fylmtm
1
180
Vim introduction
fylmtm
1
100
Google I/O 2014 - Web updates
fylmtm
0
150
Other Decks in Programming
See All in Programming
Serena MCPのすすめ
wadakatu
4
900
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
920
Advance Your Career with Open Source
ivargrimstad
0
350
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
110
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
140
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
Model Pollution
hschwentner
1
180
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
490
Breaking Up with Big ViewModels — Without Breaking Your Architecture (droidcon Berlin 2025)
steliosf
PRO
1
330
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
140
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
240
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.5k
Featured
See All Featured
It's Worth the Effort
3n
187
28k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
How to Think Like a Performance Engineer
csswizardry
27
2k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building Applications with DynamoDB
mza
96
6.6k
How to Ace a Technical Interview
jacobian
280
24k
Side Projects
sachag
455
43k
Transcript
Cypher Editor ! " # $ In the Web
Dmitry Vrublevsky Software Engineer @ %
[email protected]
& @FylmTM Ambassador
@
None
Syntax highlighting
Error reporting
Auto Completion
It’s already there • Open Source • Separate “Backend” •
CodeMirror support • Integrated into Neo4j 3.2 ' /neo4j-contrib/cypher-editor
openCypher ?
1. Grammar 2. Tests 3. Improvements
1. Grammar • Based on ANTLR4 grammar • Copied &
Modified for Cypher Editor usage • Superset of openCypher grammar version • Neo4j version of Cypher File: cypher-editor-support/src/_generated/Cypher.g4
ANTLR4 ♥ JavaScript * * With a few exceptions.
2. Tests $ cd cypher-editor-support/test/parser/openCypherTestFiles $ ls -1 cypher-legacy.js cypher.js
$ cat * | grep "§" | wc -l 227
3. Improvements • Grammar improvements (clause order) • https://github.com/opencypher/openCypher/pull/223 •
Add namespace to procedure names • https://github.com/opencypher/openCypher/pull/226
Challenges (1) • Vendor extensions • Legacy Cypher -> Neo4j
Vendor extension • Documented vendor extension • Neo4j 3.2 node key constraint • Neo4j 3.2 composite index
Challenges (2) Little details that matters nodeLabel : ‘:’ SP?
labelName ; MATCH (n:Person) MATCH (n:`Army:General`) MATCH (n: Person) MATCH (n: `Army:General`)
Challenges (2) Little details that matters MATCH (n:␣ RETURN n
MATCH (n:␣ RETURN n What user sees: What grammar sees:
' /slizaa / slizaa-opencypher-xtext
Our team responsibility • Sync up with openCypher grammar when
possible and makes sense • Contribute our grammar fixes & improvements back to openCypher
None