@@ -302,19 +302,45 @@ Out-of-the box `clojure-mode' understands lein, boot, gradle,
302302 " Keymap for Clojure mode." )
303303
304304(defvar clojure-mode-syntax-table
305- (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
306- (modify-syntax-entry ?\{ " (}" table)
307- (modify-syntax-entry ?\} " ){" table)
305+ (let ((table (make-syntax-table )))
306+ ; ; Initialize ASCII charset as symbol syntax
307+ (modify-syntax-entry '(0 . 127 ) " _" table)
308+
309+ ; ; Word syntax
310+ (modify-syntax-entry '(?0 . ?9 ) " w" table)
311+ (modify-syntax-entry '(?a . ?z ) " w" table)
312+ (modify-syntax-entry '(?A . ?Z ) " w" table)
313+
314+ ; ; Whitespace
315+ (modify-syntax-entry ?\s " " table)
316+ (modify-syntax-entry ?\xa0 " " table) ; non-breaking space
317+ (modify-syntax-entry ?\t " " table)
318+ (modify-syntax-entry ?\f " " table)
319+
320+ ; ; Delimiters
321+ (modify-syntax-entry ?\( " ()" table)
322+ (modify-syntax-entry ?\) " )(" table)
308323 (modify-syntax-entry ?\[ " (]" table)
309324 (modify-syntax-entry ?\] " )[" table)
310- (modify-syntax-entry ?? " _ p" table) ; ? is a prefix outside symbols
311- (modify-syntax-entry ?# " _ p" table) ; # is allowed inside keywords (#399)
325+ (modify-syntax-entry ?\{ " (}" table)
326+ (modify-syntax-entry ?\} " ){" table)
327+
328+ ; ; Prefix chars
329+ (modify-syntax-entry ?` " '" table)
312330 (modify-syntax-entry ?~ " '" table)
313331 (modify-syntax-entry ?^ " '" table)
314332 (modify-syntax-entry ?@ " '" table)
333+ (modify-syntax-entry ?? " _ p" table) ; ? is a prefix outside symbols
334+ (modify-syntax-entry ?# " _ p" table) ; # is allowed inside keywords (#399)
335+
336+ ; ; Others
337+ (modify-syntax-entry ?\; " <" table) ; comment start
338+ (modify-syntax-entry ?\n " >" table) ; comment end
339+ (modify-syntax-entry ?\" " \" " table) ; string
340+ (modify-syntax-entry ?\\ " \\ " table) ; escape
341+
315342 table)
316- " Syntax table for Clojure mode.
317- Inherits from `emacs-lisp-mode-syntax-table' ." )
343+ " Syntax table for Clojure mode." )
318344
319345(defconst clojure--prettify-symbols-alist
320346 '((" fn" . ?λ )))
0 commit comments