Skip to content

Instantly share code, notes, and snippets.

@aisamanra
Created April 9, 2015 00:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aisamanra/c155216dd65cf5b9c918 to your computer and use it in GitHub Desktop.
Save aisamanra/c155216dd65cf5b9c918 to your computer and use it in GitHub Desktop.
Major mode for editing GIDL files
;; a simple major mode for editing GIDL files.
(setq gidl-font-lock
'(( "def-\\(enum\\|struct\\|newtype\\|interface\\)"
. font-lock-keyword-face )
( "def-\\(enum\\|struct\\|newtype\\|interface\\) (?\\([A-Za-z0-9_-]*\\)"
2 font-lock-function-name-face )
( "[us]int\\(8\\|16\\|32\\|64\\)_t\\|bool_t\\|float_t\\|double_t"
. font-lock-builtin-face)))
(defvar gidl-syntax-table nil "Syntax table for `gidl-mode'.")
(setq gidl-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?- ". 12b" table)
(modify-syntax-entry ?\n "> b" table)
(modify-syntax-entry ?( "($")
(modify-syntax-entry ?) ")^")
table))
(define-derived-mode gidl-mode prog-mode
"GIDL mode is a major mode for editing GIDL files"
:syntax-table gidl-syntax-table
(setq font-lock-defaults '(gidl-font-lock))
(setq mode-name "GIDL mode")
(setq comment-start "--")
(setq comment-end ""))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment