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
160
Vim introduction
fylmtm
1
96
Google I/O 2014 - Web updates
fylmtm
0
120
Other Decks in Programming
See All in Programming
せっかくモデル図描くのなら、嬉しいことが多い方がいいよね!
kuboaki
1
3.1k
雑に思考を整理する技術と効能
konifar
55
24k
Semantic search with Django and pgvector
pauloxnet
0
230
Git Rebase
bkuhlmann
11
1.6k
Build with AI 2024 Seoul - 제로부터 시작하는 Flutter with Gemini 생활 - 박제창
itsmedreamwalker
0
200
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
210
What We Can Learn From OSS
inouehi
0
400
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
8
2.2k
Ruby製社内ツールのGo移行
bgpat
2
330
ONE WEDGE_company_guide
1wedge_one
0
360
try! Swift Tokyo 初参加報告LT
hinakko2
0
190
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
320
20k
How GitHub (no longer) Works
holman
304
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
The Invisible Side of Design
smashingmag
293
49k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
115
18k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
How STYLIGHT went responsive
nonsquared
92
4.8k
Gamification - CAS2011
davidbonilla
76
4.6k
A Philosophy of Restraint
colly
195
16k
How to name files
jennybc
64
92k
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