Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Cypher Editor
Search
Dmitrijs Vrublevskis
June 05, 2017
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cypher Editor
Dmitrijs Vrublevskis
June 05, 2017
More Decks by Dmitrijs Vrublevskis
See All by Dmitrijs Vrublevskis
Cypher in JetBrains IDE
fylmtm
0
220
Adopting Neo4j @ Enterprise scale
fylmtm
0
93
League of Graphs \w Neo4j
fylmtm
0
1.7k
Performance & Stability testing \w Gatling
fylmtm
0
240
Neo4j Magic Adventures
fylmtm
1
210
Vim introduction
fylmtm
1
140
Google I/O 2014 - Web updates
fylmtm
0
160
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
910
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
280
Agents on Rails - Rails at Scale 2026
irinanazarova
0
340
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
Java 27新機能 / Java 27 new features
kishida
2
200
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.9k
Simple Storage Service(S3) is not simple
iwatsukayura
0
210
APNsからLive Activityを開始する話
yumnumm
0
150
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
110
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
R8 の設定見直しでアプリサイズ削減
andpad
0
160
Jetpack Compose Mechanisms
skydoves
2
440
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
1.1k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
Unsuck your backbone
ammeep
672
58k
Mobile First: as difficult as doing things right
swwweet
225
10k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
Building an army of robots
kneath
307
47k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
250
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Visualization
eitanlees
153
17k
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