Browse Source

Ticket #3868: syntax: add Protocol Buffers and gRPC support.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Sergey Naumov 7 years ago
parent
commit
aff3834dc3
3 changed files with 61 additions and 0 deletions
  1. 1 0
      misc/syntax/Makefile.am
  2. 3 0
      misc/syntax/Syntax.in
  3. 57 0
      misc/syntax/protobuf.syntax

+ 1 - 0
misc/syntax/Makefile.am

@@ -66,6 +66,7 @@ SYNTAXFILES =			\
 	povray.syntax		\
 	povray.syntax		\
 	procmail.syntax		\
 	procmail.syntax		\
 	properties.syntax	\
 	properties.syntax	\
+	protobuf.syntax		\
 	puppet.syntax		\
 	puppet.syntax		\
 	python.syntax		\
 	python.syntax		\
 	r.syntax		\
 	r.syntax		\

+ 3 - 0
misc/syntax/Syntax.in

@@ -289,5 +289,8 @@ include r.syntax
 file ..\*\\.(?i:md)$ Markdown
 file ..\*\\.(?i:md)$ Markdown
 include markdown.syntax
 include markdown.syntax
 
 
+file ..\*\\.proto$ Protobuf\sFile
+include protobuf.syntax
+
 file .\* unknown
 file .\* unknown
 include unknown.syntax
 include unknown.syntax

+ 57 - 0
misc/syntax/protobuf.syntax

@@ -0,0 +1,57 @@
+# Syntax rules for Protobuf files and gRPC extensions
+
+context default
+    keyword whole enum yellow
+    keyword whole extend yellow
+    keyword whole extensions yellow
+    keyword whole import yellow
+    keyword whole map yellow
+    keyword whole message yellow
+    keyword whole oneof yellow
+    keyword whole option yellow
+    keyword whole optional yellow
+    keyword whole package yellow
+    keyword whole public yellow
+    keyword whole repeated yellow
+    keyword whole required yellow
+    keyword whole reserved yellow
+    keyword whole returns yellow
+    keyword whole rpc yellow
+    keyword whole service yellow
+    keyword whole stream yellow
+
+    keyword whole double yellow
+    keyword whole float yellow
+    keyword whole int32 yellow
+    keyword whole int64 yellow
+    keyword whole uint32 yellow
+    keyword whole uint64 yellow
+    keyword whole sint32 yellow
+    keyword whole sint64 yellow
+    keyword whole fixed32 yellow
+    keyword whole fixed64 yellow
+    keyword whole sfixed32 yellow
+    keyword whole sfixed64 yellow
+    keyword whole bool yellow
+    keyword whole string yellow
+    keyword whole bytes yellow
+
+    keyword // brown
+
+# punctuation characters, sorted by ASCII code
+    keyword ( brightcyan
+    keyword ) brightcyan
+    keyword , brightcyan
+    keyword : brightcyan
+    keyword ; brightmagenta
+    keyword = yellow
+    keyword [ brightcyan
+    keyword ] brightcyan
+    keyword { brightcyan
+    keyword } brightcyan
+
+context exclusive // \n brown
+    spellcheck
+
+context " " green
+    spellcheck