Skip to content

Commit ee2f7b4

Browse files
committed
Add keywords support
1 parent 665600f commit ee2f7b4

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

gptscript-mode.el

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,21 @@
3131

3232
;;; Code:
3333

34+
(require 'rx)
35+
3436
(defgroup gptscript-mode nil
3537
"Major mode for editing GPTScript natural language."
3638
:prefix "gptscript-mode-"
3739
:group 'comm
3840
:link '(url-link :tag "Repository" "https://github.com/emacs-openai/gptscript-mode"))
3941

42+
(defvar gptscript-mode-syntax-table
43+
(let ((table (make-syntax-table)))
44+
table)
45+
"Syntax table for GPTScript file.")
46+
4047
(defface gptscript-mode-symbol-face
41-
'((t :inherit font-lock-constant-face))
48+
'((t :inherit font-lock-builtin-face))
4249
"Face for highlighting symbols in GPTScript files."
4350
:group 'gptscript-mode)
4451

@@ -48,19 +55,22 @@
4855
"List of parameters name.")
4956

5057
(defconst gptscript-mode-font-lock-keywords
51-
`((,(regexp-opt
52-
gptscript-mode-parameters
53-
'symbols)
58+
`((,(regexp-opt gptscript-mode-parameters 'symbols)
5459
. gptscript-mode-symbol-face))
5560
"Keywords in GPTScript file.")
5661

5762
;;;###autoload
5863
(define-derived-mode gptscript-mode text-mode "GPTScript"
5964
"Major mode for editing GPTScript files."
65+
:syntax-table gptscript-mode-syntax-table
6066
(font-lock-add-keywords 'gptscript-mode gptscript-mode-font-lock-keywords))
6167

6268
;;;###autoload
6369
(add-to-list 'auto-mode-alist '("\\.gpt\\'" . gptscript-mode))
6470

71+
(with-eval-after-load 'company-keywords
72+
(add-to-list 'company-keywords-alist
73+
`(gptscript-mode . ,gptscript-mode-parameters)))
74+
6575
(provide 'gptscript-mode)
6676
;;; gptscript-mode.el ends here

0 commit comments

Comments
 (0)