]>
Commit | Line | Data |
---|---|---|
1 | ;ELC\1c\0\0\0 | |
2 | ;;; Compiled | |
3 | ;;; in Emacs version 28.2 | |
4 | ;;; with all optimizations. | |
5 | ||
6 | ||
7 | ||
8 | (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\301%\210\310\311\312\313\314\315%\207" [require company cl-lib custom-declare-group company-cmake nil "Completion backend for CMake." :group custom-declare-variable company-cmake-executable (executable-find "cmake") "Location of cmake executable." :type file] 6) | |
9 | #@114 The arguments we pass to cmake, separately. | |
10 | They affect which types of symbols we get completion candidates for.\1f | |
11 | (defvar company-cmake-executable-arguments '("--help-command-list" "--help-module-list" "--help-property-list" "--help-variable-list") (#$ . 407)) | |
12 | #@33 Regexp to match the candidates.\1f | |
13 | (defvar company-cmake--completion-pattern "^\\(%s[a-zA-Z0-9_<>]%s\\)$" (#$ . 673)) | |
14 | #@42 Major modes in which cmake may complete.\1f | |
15 | (defvar company-cmake-modes '(cmake-mode) (#$ . 794)) | |
16 | #@31 Cache for the raw candidates.\1f | |
17 | (defvar company-cmake--candidates-cache nil (#$ . 895)) | |
18 | #@74 Cache for command arguments to retrieve descriptions for the candidates.\1f | |
19 | (defvar company-cmake--meta-command-cache nil (#$ . 987)) | |
20 | (defalias 'company-cmake--replace-tags #[(rlt) "\301\302\303\b\304$\10\301\305\306\307\310\311#\b#\211\10\207" [rlt replace-regexp-in-string "\\(.*?\\(IS_GNU\\)?\\)<LANG>\\(.*\\)" #[(_match) "\300\301\302\224\203\v\0\303\202\f\0\304\305#\207" [mapconcat identity 2 ("\\1CXX\\3" "\\1C\\3" "\\1G77\\3") ("\\1CXX\\3" "\\1C\\3" "\\1Fortran\\3") "\n"] 4] t "\\(.*\\)<CONFIG>\\(.*\\)" mapconcat identity ("\\1DEBUG\\2" "\\1RELEASE\\2" "\\1RELWITHDEBINFO\\2" "\\1MINSIZEREL\\2") "\n"] 7]) | |
21 | #@34 Fill candidates cache if needed.\1f | |
22 | (defalias 'company-cmake--fill-candidates-cache #[(arg) "\306\18 \204\v\0\307\310\311\"\11\312\n \"?\205?\0\313\314\315\"\er\vq\210\316\216\317\f\306\315\306\n%\211\1d\320U\2041\0\321\322\r\"\210)\323 \10+\324\b!\10\325\n\b #)\207" [rlt company-cmake--candidates-cache arg #1=#:temp-buffer company-cmake-executable res nil make-hash-table :test equal gethash generate-new-buffer " *temp*" t #[nil "\301\b!\205 \0\302\b!\207" [#1# buffer-name kill-buffer] 2] call-process 0 message "cmake executable exited with error=%d" buffer-string company-cmake--replace-tags puthash] 7 (#$ . 1597)]) | |
23 | (defalias 'company-cmake--parse #[(prefix content cmd) "\306\307\b\310 ! G\306U\203\11\0\311\202\12\0\312#\313\n\314\"\315\211\e\1c\1d\1e\12\1e\13\r\315\1e\14\211\1e\15\203X\0\ e\15@\16\14\316\ e\12\ e\14\"\203O\0\317\320\ e\14\"\211\1c\203N\0\321\f\ e\16\ e\17#\210\f\vB\13)\ e\15A\211\16\15\204*\0*\v-\207" [company-cmake--completion-pattern prefix content rlt match lines 0 format regexp-quote "+" "*" split-string "\n" nil string-match match-string 1 puthash pattern start line --dolist-tail-- cmd company-cmake--meta-command-cache] 7]) | |
24 | (defalias 'company-cmake--candidates #[(prefix) "\306\211\211\18\19\1a\v\204\ f\0\307\310\311\"\13\f\306\1d\211\1e\10\203B\0\ e\10@\15\312\r!\210\313\314\315\r#\11\316\r\ e\11\"\211\10\2039\0\n\317\ e\12\b #\244\12\ e\10A\211\16\10\204\18\0*\n+\207" [str cmd-opts results company-cmake--meta-command-cache company-cmake-executable-arguments arg nil make-hash-table :test equal company-cmake--fill-candidates-cache replace-regexp-in-string "-list$" "" gethash company-cmake--parse --dolist-tail-- company-cmake--candidates-cache prefix] 6]) | |
25 | (defalias 'company-cmake--unexpand-candidate #[(candidate) "\301\302\b\"\203\11\0\303\304\305\b\"P\10\202E\0\301\306\b\"\203\"\0\304\307\b\"\310P\10\202E\0\301\311\b\"\2033\0\304\307\b\"\312P\10\202E\0\301\313\b\"\203E\0\304\307\b\"\314\304\315\b\"Q\10\b\207" [candidate string-match "^CMAKE_\\(C\\|CXX\\|Fortran\\)\\(_.*\\)$" "CMAKE_<LANG>" match-string 2 "^\\(.*_\\)IS_GNU\\(C\\|CXX\\|G77\\)$" 1 "IS_GNU<LANG>" "^\\(.*_\\)OVERRIDE_\\(C\\|CXX\\|Fortran\\)$" "OVERRIDE_<LANG>" "^\\(.*\\)\\(_DEBUG\\|_RELEASE\\|_RELWITHDEBINFO\\|_MINSIZEREL\\)\\(.*\\)$" "_<CONFIG>" 3] 5]) | |
26 | (defalias 'company-cmake--meta #[(candidate) "\306\b \"\307\1a\e\310\b!\10\311\312\313\"\1cr\fq\210\314\216\315\r\307\313\307\v\b&\ 6\210eb\210\316y\210\317\320 \321 \"\12\322\323\324\n#\211\12-\207" [candidate company-cmake--meta-command-cache result cmd-opts #1=#:temp-buffer company-cmake-executable gethash nil company-cmake--unexpand-candidate generate-new-buffer " *temp*" t #[nil "\301\b!\205 \0\302\b!\207" [#1# buffer-name kill-buffer] 2] call-process 2 buffer-substring-no-properties line-beginning-position line-end-position replace-regexp-in-string "^[ \n\r]+" ""] 8]) | |
27 | (defalias 'company-cmake--doc-buffer #[(candidate) "\305\b \"\1a\306\b!\10\307\310\311\"\er\vq\210\312\216\313\f\314\311\314\n\b&\ 6\210eb\210\315y\210\316\317\320 d\"!,\207" [candidate company-cmake--meta-command-cache cmd-opts #1=#:temp-buffer company-cmake-executable gethash company-cmake--unexpand-candidate generate-new-buffer " *temp*" t #[nil "\301\b!\205 \0\302\b!\207" [#1# buffer-name kill-buffer] 2] call-process nil 2 company-doc-buffer buffer-substring-no-properties line-beginning-position] 7]) | |
28 | #@40 Test if the current symbol follows ${.\1f | |
29 | (defalias 'company-cmake-prefix-dollar-brace-p #[nil "\212\300\301!\210`\206\n\0`Sf\302=\205\e\0`S\206\17\0`Sf\303=)\207" [skip-syntax-backward "w_" 123 36] 2 (#$ . 4754)]) | |
30 | #@98 `company-mode' completion backend for CMake. | |
31 | CMake is a cross-platform, open-source make system.\1f | |
32 | (defalias 'company-cmake #[(command &optional arg &rest ignored) "\b\305\267\2028\0\306\307!\207 \n>\2059\0\v?\205\18\0\310\311!\207 \n>\2059\0\312 \203)\0\313 \2059\0\314 \207\315\f!\207\316\f!\207\317\f!\207\320\207" [command major-mode company-cmake-modes company-cmake-executable arg #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (interactive 6 init 10 prefix 25 candidates 44 meta 48 doc-buffer 52)) company-begin-backend company-cmake error "Company found no cmake executable" company-in-string-or-comment company-cmake-prefix-dollar-brace-p company-grab-symbol company-cmake--candidates company-cmake--meta company-cmake--doc-buffer nil] 2 (#$ . 4966) (list 'interactive)]) | |
33 | (provide 'company-cmake) |