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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Dmitrijs Vrublevskis
June 05, 2017
Programming
150
0
Share
Cypher Editor
Dmitrijs Vrublevskis
June 05, 2017
More Decks by Dmitrijs Vrublevskis
See All by Dmitrijs Vrublevskis
Cypher in JetBrains IDE
fylmtm
0
200
Adopting Neo4j @ Enterprise scale
fylmtm
0
82
League of Graphs \w Neo4j
fylmtm
0
1.6k
Performance & Stability testing \w Gatling
fylmtm
0
230
Neo4j Magic Adventures
fylmtm
1
200
Vim introduction
fylmtm
1
120
Google I/O 2014 - Web updates
fylmtm
0
160
Other Decks in Programming
See All in Programming
🦞OpenClaw works with AWS
licux
1
310
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
410
JOAI2026 1st solution - heron0519 -
heron0519
0
160
CDK Deployのための ”反響定位”
watany
5
910
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
240
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
320
Making the RBS Parser Faster
soutaro
0
620
의존성 주입과 모듈화
fornewid
0
150
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
290
AIを導入する前にやるべきこと
negima
2
310
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
2
320
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
210
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
760
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
190
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Building the Perfect Custom Keyboard
takai
2
740
My Coaching Mixtape
mlcsv
0
110
Speed Design
sergeychernyshev
33
1.6k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
190
Facilitating Awesome Meetings
lara
57
6.8k
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