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
68
League of Graphs \w Neo4j
fylmtm
0
1.4k
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
140
Other Decks in Programming
See All in Programming
人には人それぞれのサービス層がある
shimabox
3
470
Parallel::Pipesの紹介
skaji
2
870
TypeScript Language Service Plugin で CSS Modules の開発体験を改善する
mizdra
PRO
3
2.5k
Efficiency and Rock 'n’ Roll (Really!)
hollycummins
0
600
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
130
イベントソーシングとAIの親和性ー物語とLLMに理解できるデータ
tomohisa
1
160
CRUD から CQRS へ ~ 分離が可能にする柔軟性
tkawae
0
230
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
1
670
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
6
970
TypeScript を活かしてデザインシステム MCP を作る / #tskaigi_after_night
izumin5210
4
480
AI Coding Agent Enablement in TypeScript
yukukotani
17
7.2k
Interface vs Types ~型推論が過多推論~
hirokiomote
1
230
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Documentation Writing (for coders)
carmenintech
71
4.8k
Bash Introduction
62gerente
614
210k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
The Pragmatic Product Professional
lauravandoore
35
6.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Designing for Performance
lara
608
69k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
Transcript
Cypher Editor ! " # $ In the Web
Dmitry Vrublevsky Software Engineer @ % dmitry.vrublevsky@neueda.com & @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