Skip to content

Commit

Permalink
Merge pull request #10 from kgrotel/test
Browse files Browse the repository at this point in the history
feat: syntax table defined
  • Loading branch information
kgrotel authored Jul 14, 2024
2 parents e7af345 + 7f2e573 commit 985ed2a
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 13 deletions.
47 changes: 37 additions & 10 deletions terraform-ts-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
:group 'terraform)

(defcustom terraform-ts-eglot-debug nil
"diasable debugging of eglot (mostly eglot logging) to improve performance"
"enable debugging of eglot (mostly eglot logging) will impact performance"
:type 'boolean
:group 'terraform)

Expand Down Expand Up @@ -94,15 +94,42 @@
;; mode vars

(defvar terraform-ts--syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?_ "_" table)
(modify-syntax-entry ?- "_" table)
(modify-syntax-entry ?= "." table)
(modify-syntax-entry ?# "< b" table)
(modify-syntax-entry ?\n "> b" table)
(modify-syntax-entry ?/ ". 124b" table)
(modify-syntax-entry ?* ". 23" table)
table)
(let ((synTable (make-syntax-table)))
;; Word syntax
(modify-syntax-entry ?_ "w" synTable) ; underscore is always part of word (never punctiation) -> w
(modify-syntax-entry '(?0 . ?9) "w" synTable)
(modify-syntax-entry '(?a . ?z) "w" synTable)
(modify-syntax-entry '(?A . ?Z) "w" synTable)

;; Punctuation
(modify-syntax-entry ?- "_" synTable) ; - can be word and punctiation -> _ class
(modify-syntax-entry ?= "." synTable)
(modify-syntax-entry ?= "." synTable)

;; Whitespace
(modify-syntax-entry ?\s " " synTable)
(modify-syntax-entry ?\xa0 " " synTable) ; non-breaking space
(modify-syntax-entry ?\t " " synTable)
(modify-syntax-entry ?\f " " synTable)

;; Brackets
(modify-syntax-entry ?\( "()" synTable)
(modify-syntax-entry ?\) ")(" synTable)
(modify-syntax-entry ?\[ "(]" synTable)
(modify-syntax-entry ?\] ")[" synTable)
(modify-syntax-entry ?\{ "(}" synTable)
(modify-syntax-entry ?\} "){" synTable)

;; Comments
(modify-syntax-entry ?# "<" synTable) ; comment-start-class: single line comment
(modify-syntax-entry ?\n ">" synTable) ; comment-end-class: eol
(modify-syntax-entry ?/ ". 124" synTable) ; punctuation but also comment: can be // or (12) or /* (1) */ (4)
(modify-syntax-entry ?* ". 23b" synTable) ; punctuation but also comment: ca be /* (2) */ (3)

;; Others
(modify-syntax-entry ?\" "\"" synTable) ; string
(modify-syntax-entry ?\\ "\\" synTable) ; escape
synTable)
"Syntax table for `terraform-ts-mode'.")

;; Imenu
Expand Down
2 changes: 1 addition & 1 deletion test/helper-test.el
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
;;; helper-test.el --- helper for testing terraform-mode

;; Copyright (C) 2023 by Kai Groteluschen
;; Copyright (C) 2024 by Kai Groteluschen

;; Author: Kai Groteluschen <kgr@gnotes.de>

Expand Down
2 changes: 1 addition & 1 deletion test/highlighting-test.el
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
;;; highlighting-test.el --- test for highlighting

;; Copyright (C) 2023 by Kai Groteluschen
;; Copyright (C) 2024 by Kai Groteluschen

;; Author: Kai Groteluschen <kgr@gnotes.de>

Expand Down
2 changes: 1 addition & 1 deletion test/indentation-test.el
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
;;; indentation-test.el --- test for indentation

;; Copyright (C) 2023 by Kai Groteluschen
;; Copyright (C) 2024 by Kai Groteluschen

;; Author: Kai Groteluschen <kgr@gnotes.de>

Expand Down

0 comments on commit 985ed2a

Please sign in to comment.