Variable: lua-ts-mode-abbrev-table

lua-ts-mode-abbrev-table is a variable defined in lua-ts-mode.el.gz.

Value

#<obarray n=1>

Documentation

Abbrev table for lua-ts-mode.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/lua-ts-mode.el.gz
;;;###autoload
(define-derived-mode lua-ts-mode prog-mode "Lua"
  "Major mode for editing Lua files, powered by tree-sitter.

\\{lua-ts-mode-map}"
  :syntax-table lua-ts--syntax-table
  (use-local-map lua-ts-mode-map)

  ;; `treesit-ready-p' also checks for buffer size.
  (when (and (treesit-ensure-installed 'lua)
             (treesit-ready-p 'lua))
    (setq treesit-primary-parser (treesit-parser-create 'lua))

    ;; Comments.
    (setq-local comment-start "--")
    (setq-local comment-start-skip "--\\s-*")
    (setq-local comment-end "")

    ;; Pairs.
    (when (and lua-ts-auto-close-block-comments
               (boundp 'electric-pair-pairs))
      (setq-local electric-pair-pairs
                  (cons
                   '("--\\[\\[" . "\n]")
                   electric-pair-pairs)))

    ;; Font-lock.
    (setq-local treesit-font-lock-settings lua-ts--font-lock-settings)
    (setq-local treesit-font-lock-feature-list
                '((comment definition)
                  (keyword string)
                  (assignment builtin constant number)
                  (bracket
                   delimiter
                   escape
                   function
                   operator
                   property
                   punctuation
                   variable)))

    ;; Indent.
    (setq-local c-ts-common-indent-offset 'lua-ts-indent-offset)
    (setq-local c-ts-common-list-indent-style 'simple)
    (setq-local treesit-simple-indent-rules lua-ts--simple-indent-rules)

    ;; Navigation.
    (setq-local treesit-defun-name-function #'lua-ts--defun-name-function)
    (setq-local treesit-defun-type-regexp
                (rx (or "function_declaration" "function_definition")))
    (setq-local treesit-thing-settings
                `((lua
                   (function (or "function_declaration"
                                 "function_definition"))
                   (keyword ,(regexp-opt lua-ts--keywords 'symbols))
                   (loop-statement (or "do_statement"
                                       "for_statement"
                                       "repeat_statement"
                                       "while_statement"))
                   (sentence (or function
                                 loop-statement
                                 comment
                                 "assignment_statement"
                                 "field"
                                 "function_call"
                                 "if_statement"
                                 "return_statement"
                                 "variable_declaration"))
                   (sexp (or function
                             keyword
                             loop-statement
                             "arguments"
                             "parameters"
                             "parenthesized_expression"
                             "string"
                             "table_constructor"))
                   (list (or function
                             loop-statement
                             "arguments"
                             "parameters"
                             "table_constructor"
                             "parenthesized_expression"
                             ,(rx bos "if_statement" eos)))
                   (text (or comment "string"))
                   (comment ,(rx bos "comment" eos)))))

    ;; Imenu/Outline/Which-function.
    (setq-local treesit-simple-imenu-settings
                `(("Requires"
                   "\\`function_call\\'"
                   lua-ts--require-p
                   lua-ts--require-name-function)
                  ("Variables" "\\`variable_declaration\\'" nil nil)
                  (nil
                   "\\`\\(?:f\\(?:ield\\|unction_declaration\\)\\)\\'"
                   lua-ts--named-function-p
                   nil)))

    ;; Align.
    (setq-local align-indent-before-aligning t)

    (treesit-major-mode-setup))

  (add-hook 'flymake-diagnostic-functions #'lua-ts-flymake-luacheck nil 'local))