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
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cypher Editor
Dmitrijs Vrublevskis
June 05, 2017
More Decks by Dmitrijs Vrublevskis
See All by Dmitrijs Vrublevskis
Cypher in JetBrains IDE
fylmtm
0
220
Adopting Neo4j @ Enterprise scale
fylmtm
0
88
League of Graphs \w Neo4j
fylmtm
0
1.7k
Performance & Stability testing \w Gatling
fylmtm
0
240
Neo4j Magic Adventures
fylmtm
1
200
Vim introduction
fylmtm
1
130
Google I/O 2014 - Web updates
fylmtm
0
160
Other Decks in Programming
See All in Programming
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
メールのエイリアス機能を履き違えない
isshinfunada
0
250
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.2k
Hono + Inertia + React で LP を構築した話
oukayuka
2
160
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
190
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
370
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
540
Flow は今どうなっているか
mizdra
PRO
0
710
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
210
リアルな遅延を測る仕様
kota_yata
1
130
Press start. Python's next generation.
willingc
PRO
3
120
Oxlintはいいぞ(続)
yug1224
1
440
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
810
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
Side Projects
sachag
455
43k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Paper Plane
katiecoart
PRO
2
53k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Become a Pro
speakerdeck
PRO
31
6.2k
A Soul's Torment
seathinner
6
3.5k
Fireside Chat
paigeccino
42
4k
Balancing Empowerment & Direction
lara
6
1.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
380
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