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
110
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
160
Adopting Neo4j @ Enterprise scale
fylmtm
0
59
League of Graphs \w Neo4j
fylmtm
0
1.3k
Performance & Stability testing \w Gatling
fylmtm
0
210
Neo4j Magic Adventures
fylmtm
1
170
Vim introduction
fylmtm
1
96
Google I/O 2014 - Web updates
fylmtm
0
120
Other Decks in Programming
See All in Programming
Deep Dive into React Stream/Serialize
mugi_uno
3
730
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
170
Going beyond Apache Parquet's default settings
xhochy
0
140
Next.js App Router
quramy
12
2k
AmperとFleetを使ったAndroidアプリ
yoppie
0
270
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.6k
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
100
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
110
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
990
Elm Form Validation
bkuhlmann
0
520
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
150
Featured
See All Featured
Infographics Made Easy
chrislema
238
18k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Fireside Chat
paigeccino
22
2.6k
Into the Great Unknown - MozCon
thekraken
15
1k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
The Invisible Side of Design
smashingmag
294
49k
The Cost Of JavaScript in 2023
addyosmani
21
3.9k
Building Applications with DynamoDB
mza
88
5.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Music & Morning Musume
bryan
41
5.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
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