summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile22
-rw-r--r--syntax/gmi.vim31
2 files changed, 41 insertions, 12 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..4c8df06
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,22 @@
+UNAME := $(shell uname -s)
+
+SYN := /syntax
+FT := /ftdetect
+
+ifeq ($(UNAME), Haiku)
+ROOT = /boot/home/config/settings/vim
+else
+ROOT := ~/.vim
+endif
+
+.PHONY: install
+install: ./syntax/gmi.vim ./ftdetect/gmi.vim
+ install -d ${ROOT}${SYN}
+ install -d ${ROOT}${FT}
+ install -m 0644 ./syntax/gmi.vim ${ROOT}${SYN}
+ install -m 0644 ./syntax/gmi.vim ${ROOT}${FT}
+
+.PHONY: remove
+remove:
+ rm -rf ${ROOT}${SYN}/gmi.vim
+ rm -rf ${ROOT}${FT}/gmi.vim
diff --git a/syntax/gmi.vim b/syntax/gmi.vim
index 842e665..cf0dccd 100644
--- a/syntax/gmi.vim
+++ b/syntax/gmi.vim
@@ -3,32 +3,39 @@
" " Maintainer: sloum < sloum AT rawtext.club >
" " Latest Revision: 02 February 2020
-if exists("b:current_syntax")
+"
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
finish
endif
" Handle monospaced blocks
-syn region Special start="```" end="```"
+syn region gmiMono start="```" end="```"
" Handle between one and three heading levels
-syn match Constant /^#\{1,3}.*$/
+syn match gmiHeader /^#\{1,3}.*$/
" Start a link line
-syn match Todo /^=>/ nextgroup=Underlined skipwhite
+syn match gmiLinkStart /^=>/ nextgroup=gmiLinkUrl skipwhite
" An extremely naive way of handling the URL portion of the link line
" TODO think about improving this
-syn match Underlined /\S\+/ contained nextgroup=String skipwhite
+syn match gmiLinkUrl /\S\+/ contained nextgroup=gmiLinkTitle skipwhite
-syn match String /.*$/ contained
+syn match gmiLinkTitle /.*$/ contained
" Handle list items
-syn match Identifier /^\*.*$/
-
-syn match Ignore /^77/
-syn match String /^88/
-syn match Comment /^99/
+syn match gmiListItem /^\*.*$/
+let b:current_syntax = "gmi"
+hi def link gmiMono Special
+hi def link gmiHeader Constant
+hi def link gmiLinkStart Todo
+hi def link gmiLinkUrl Underlined
+hi def link gmiLinkTitle String
+hi def link gmiListItem Identifier
-let b:current_syntax = "gmi"