;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317&\207" [require treesit custom-declare-variable cmake-ts-mode-indent-offset funcall function #[0 "\300\207" [2] 1 ""] "Number of spaces for each indentation step in `cmake-ts-mode'." :version "29.1" :type integer :safe integerp :group cmake] 12)#@35 Syntax table for `cmake-ts-mode'.
(defvar cmake-ts-mode--syntax-table (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\207" [make-syntax-table modify-syntax-entry 35 "<" 10 ">" 36 "'"] 5) (#$ . 413))#@47 Tree-sitter indent rules for `cmake-ts-mode'.
(defvar cmake-ts-mode--indent-rules (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\3141 \315\300\316\"\210\3170\202 \210\320\3211* \315\300\322\"\210\3230\202, \210\320\"BBBBBBBBBBBC\207" [cmake ((node-is ")") parent-bol 0) ((node-is "else_command") parent-bol 0) ((node-is "elseif_command") parent-bol 0) ((node-is "endforeach_command") parent-bol 0) ((node-is "endfunction_command") parent-bol 0) ((node-is "endif_command") parent-bol 0) ((parent-is "foreach_loop") parent-bol cmake-ts-mode-indent-offset) ((parent-is "function_def") parent-bol cmake-ts-mode-indent-offset) ((parent-is "if_condition") parent-bol cmake-ts-mode-indent-offset) ((parent-is "normal_command") parent-bol cmake-ts-mode-indent-offset) append (error) treesit-query-capture ((argument_list) @capture) (((parent-is "argument_list") grand-parent cmake-ts-mode-indent-offset)) nil (error) ((body) @capture) (((parent-is "body") grand-parent cmake-ts-mode-indent-offset))] 16) (#$ . 641))#@47 CMake constants for tree-sitter font-locking.
(defvar cmake-ts-mode--constants '("1" "ON" "TRUE" "YES" "Y" "0" "OFF" "FALSE" "NO" "N" "IGNORE" "NOTFOUND") (#$ . 1670))#@46 CMake keywords for tree-sitter font-locking.
(defvar cmake-ts-mode--keywords '((else) (elseif) (endforeach) (endfunction) (endif) (endmacro) (endwhile) (foreach) (function) (if) (macro) (while)) (#$ . 1843))#@53 CMake foreach options for tree-sitter font-locking.
(defvar cmake-ts-mode--foreach-options '("IN" "ITEMS" "LISTS" "RANGE" "ZIP_LISTS") (#$ . 2056))#@51 CMake if conditions for tree-sitter font-locking.
(defvar cmake-ts-mode--if-conditions '("AND" "COMMAND" "DEFINED" "EQUAL" "EXISTS" "GREATER" "GREATER_EQUAL" "LESS" "LESS_EQUAL" "MATCHES" "NOT" "OR" "PATH_EQUAL" "STREQUAL" "STRGREATER" "STRGREATER_EQUAL" "STRLESS" "STRLESS_EQUAL" "VERSION_EQUAL" "VERSION_GREATER" "VERSION_GREATER_EQUAL" "VERSION_LESS" "VERSION_LESS_EQUAL") (#$ . 2209))#@144 Font lock helper, to handle different releases of tree-sitter-cmake.
Check if a node type is available, then return the right font lock rules.
(defalias 'cmake-ts-mode--font-lock-compatibility-fe9b5e0 #[0 "\30216 \303\304\305\"\210\306\307\310\311\312\313\314\315B\316BBB!\317BBEDC\320\321\310\311\312\313\314\315	B\322BBB!\323BBEDCD0\207\210\306\324\310\311\312\313\314\315B\325BBB!\326BBEDC\320\327\310\311\312\313\314\315	B\330BBB!\331BBEDCD\207" [cmake-ts-mode--foreach-options cmake-ts-mode--if-conditions (error) treesit-query-capture cmake ((argument_list) @capture) foreach_command (argument_list) @font-lock-constant-face :match rx-to-string seq bol or (eol) (@font-lock-constant-face) if_command (argument_list) (eol) (@font-lock-constant-face) (argument) (eol) (@font-lock-constant-face) (argument) (eol) (@font-lock-constant-face)] 10 (#$ . 2604)])#@53 Tree-sitter font-lock settings for `cmake-ts-mode'.
(defvar cmake-ts-mode--font-lock-settings (byte-code "\302\303\304\305\306\307\303\304\305\310\311 \303\304\305\312\313\303\304\305\314\315\316\317\320\321\322\323B\324BBB!\325BBEC\303\304\305\326\327\303\304\305\330\331	!\332B\303\304\305\333\334\303\304\305\335\336\303\304\305\337\340\341\342\303\304\305\343\340\344\345\303\304\305\346\340\341\347\303\304\305\350\340\341\351&D\207" [cmake-ts-mode--constants cmake-ts-mode--keywords treesit-font-lock-rules :language cmake :feature bracket ((["(" ")"]) @font-lock-bracket-face) builtin cmake-ts-mode--font-lock-compatibility-fe9b5e0 comment ([(bracket_comment) (line_comment)] @font-lock-comment-face) constant (argument) @font-lock-constant-face :match rx-to-string seq bol or (eol) (@font-lock-constant-face) function ((normal_command (identifier) @font-lock-function-call-face)) keyword vconcat (@font-lock-keyword-face) number (((unquoted_argument) @font-lock-number-face (:match "\\`[[:digit:]]*\\.?[[:digit:]]*\\.?[[:digit:]]+\\'" @font-lock-number-face))) string ([(bracket_argument) (quoted_argument)] @font-lock-string-face) escape-sequence :override t ((escape_sequence) @font-lock-escape-face) misc-punctuation nil ((["$" "{" "}" "<" ">"]) @font-lock-misc-punctuation-face) variable ((variable) @font-lock-variable-use-face) error ((ERROR) @font-lock-warning-face)] 69) (#$ . 3472))#@112 Return the function name of NODE.
Return nil if there is no name or if NODE is not a function node.

(fn NODE)
(defalias 'cmake-ts-mode--function-name #[257 "\300!\211\301\232\205 \302\303\304\305\211\306%\307\"\207" [treesit-node-type "function_command" treesit-node-text treesit-search-subtree "^argument$" nil 2 t] 9 (#$ . 4879)])
(defvar cmake-ts-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [cmake-ts-mode-hook variable-documentation put "Hook run after entering CMake mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp cmake-ts-mode-map definition-name cmake-ts-mode] 4)
(defvar cmake-ts-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\300!\204. \303\300\307\310#\210\311\300\306\300!\203& \312\202, \313\300\312\"\210\"\210\300\302N\204< \303\300\302\304\314!#\210\303\310\315\316#\210\303\310\317\320#\207" [cmake-ts-mode-abbrev-table cmake-ts-mode-map variable-documentation put purecopy "Keymap for `cmake-ts-mode'." boundp definition-name cmake-ts-mode defvar-1 nil define-abbrev-table "Abbrev table for `cmake-ts-mode'." derived-mode-parent prog-mode custom-mode-group cmake] 5)#@255 Major mode for editing CMake files, powered by tree-sitter.

In addition to any hooks its parent mode `prog-mode' might have run,
this mode runs the hook `cmake-ts-mode-hook', as the final or
penultimate step during initialization.

\{cmake-ts-mode-map}
(defalias 'cmake-ts-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f\321\"\204; \f=\204; \322\f\321C#\210\323!\210\324)!\210\f\325\326!\203\215 \327\326!\210\306\330!\210\331\306\332!\210\333\306\334!\210\335\306\336!\210\337\306\340!\210\341 \306\342!\210*\"\306\343!\210+#\306\344!\210\345$\346 \210)\347\350!\207" [delay-mode-hooks major-mode mode-name cmake-ts-mode-map cmake-ts-mode-abbrev-table local-abbrev-table make-local-variable t prog-mode cmake-ts-mode "CMake" mode-class put keymap-parent set-keymap-parent current-local-map abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table treesit-ready-p cmake treesit-parser-create comment-start "# " comment-end "" comment-start-skip "#\\s-*" treesit-simple-imenu-settings (("Function" "\\`function_command\\'" nil cmake-ts-mode--function-name)) which-func-functions nil treesit-simple-indent-rules treesit-font-lock-settings treesit-font-lock-feature-list ((comment) (keyword string) (builtin constant escape-sequence function number variable) (bracket error misc-punctuation)) treesit-major-mode-setup run-mode-hooks cmake-ts-mode-hook cmake-ts-mode--syntax-table cmake-ts-mode--indent-rules cmake-ts-mode--font-lock-settings] 5 (#$ . 6176) nil])
(byte-code "\300\301!\203 \302\303\304\"\210\305\306!\207" [treesit-ready-p cmake add-to-list auto-mode-alist ("\\(?:CMakeLists\\.txt\\|\\.cmake\\)\\'" . cmake-ts-mode) provide cmake-ts-mode] 3)
