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
130
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
180
Adopting Neo4j @ Enterprise scale
fylmtm
0
63
League of Graphs \w Neo4j
fylmtm
0
1.3k
Performance & Stability testing \w Gatling
fylmtm
0
220
Neo4j Magic Adventures
fylmtm
1
180
Vim introduction
fylmtm
1
98
Google I/O 2014 - Web updates
fylmtm
0
140
Other Decks in Programming
See All in Programming
文化が生産性を作る
jimpei
3
620
2万ページのSSG運用における工夫と注意点 / Vue Fes Japan 2024
chinen
3
440
現場から考えるソフトウェアエンジニアリングの価値と実験
nomuson
1
140
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
0
220
Програмиране с Rust, ФМИ, 2024
nikolads
0
120
Honoの来た道とこれから
yusukebe
6
870
学生の時に開催したPerl入学式をきっかけにエンジニアが組織に馴染むために勉強会を主催や仲間と参加して職能間の境界を越えていく
ohmori_yusuke
2
330
Integrating AI in Your Enterprise Java Applications
ivargrimstad
0
800
rtcamp 10 (vk-illuminati)
yumcyawiz
1
210
cgroup v2 support in Kubeadm
kentatada
0
210
Vertical Architectures for Scalable Angular Applications
manfredsteyer
PRO
0
190
Prompt Engineering for Developers @ AWS Community Day Adria 2024
slobodan
0
100
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
31
1.4k
Faster Mobile Websites
deanohume
304
30k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
26
4.1k
Facilitating Awesome Meetings
lara
49
6k
Being A Developer After 40
akosma
85
590k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
The Language of Interfaces
destraynor
154
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.3k
The World Runs on Bad Software
bkeepers
PRO
65
11k
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