;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312!\210\300\313!\210\300\314!\210\300\315!\210\300\316!\210\300\317!\210\300\320!\210\300\321!\210\300\322!\210\300\323!\210\300\324!\210\300\325!\210\300\326!\210\300\327!\210\300\330!\210\300\331!\210\300\332!\210\300\333!\210\300\334!\210\300\335\336\337#\210\300\340!\210\341\342\336\343\344\345\346\347&\207" [require cl-generic cl-lib compile dash epg ewoc f filenotify files ht imenu inline json lv markdown-mode network-stream pcase rx s seq spinner subr-x tree-widget url-parse url-util widget xref minibuffer yasnippet nil t lsp-protocol custom-declare-group lsp-mode "Language Server Protocol client." :group tools :tag "Language Server (lsp-mode)"] 8) (defconst lsp--message-type-face (byte-code "\304B\305 B\306\nB\307 BF\207" [compilation-error-face compilation-warning-face compilation-message-face compilation-info-face 1 2 3 4] 5)) #@48 Alist of error codes to user friendly strings. (defconst lsp--errors '((-32700 "Parse Error") (-32600 "Invalid Request") (-32601 "Method not Found") (-32602 "Invalid Parameters") (-32603 "Internal Error") (-32099 "Server Start Error") (-32000 "Server End Error") (-32002 "Server Not Initialized") (-32001 "Unknown Error Code") (-32800 "Request Cancelled")) (#$ . 1073)) (defconst lsp--empty-ht (make-hash-table)) #@19 (fn KEY SOURCE) (defalias 'dash-expand:&lsp-wks #[514 "\300\301\302\303!\"!D\207" [intern-soft format "lsp--workspace-%s" eval] 7 (#$ . 1492)]) #@19 (fn KEY SOURCE) (defalias 'dash-expand:&lsp-cln #[514 "\300\301\302\303!\"!D\207" [intern-soft format "lsp--client-%s" eval] 7 (#$ . 1646)]) (byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\210\310\302\311\312\313DD\314\315\316\317\320&\210\310\321\311\312\322DD\323\315\316\317\324\325\326& \210\310\327\311\312\330DD\331\315\316\317\332\325\333& \210\310\334\311\312\335DD\336\315\316\317\320&\210\310\337\311\312\340DD\341\315\342\317\320&\210\310\343\311\312\344DD\345\315\316\317\320\325\346& \210\300\347\350\303#\210\304\211\203\267\211@\347N\203\260\350N\204\260\305\350\347N#\210A\266\202\202\226\210\306\347\350\351#\210\310\350\311\312\352DD\353\315\354\317\320&\210\310\355\311\312\356DD\357\315\316\317\360\325\361& \210\310\362\311\312\363DD\364\315\316\317\320\325\365& \210\310\366\311\312\367DD\370\315\316\317\371&\210\310\372\311\312\373DD\374\315\316\317\320&\207" [defvaralias lsp-print-io lsp-log-io nil (saved-value saved-variable-comment) put make-obsolete-variable "lsp-mode 6.1" custom-declare-variable funcall function #[0 "\300\207" [nil] 1] "If non-nil, log all messages from the language server to a *lsp-log* buffer." :group lsp-mode :type boolean lsp-log-max #[0 "\207" [message-log-max] 1] "Maximum number of lines to keep in the log buffer.\nIf nil, disable message logging. If t, log messages but don’t truncate\nthe buffer when it becomes large." (choice (const :tag "Disable" nil) (integer :tag "lines") (const :tag "Unlimited" t)) :package-version (lsp-mode . "6.1") lsp-io-messages-max #[0 "\300\207" [t] 1] "Maximum number of messages that can be locked in a `lsp-io' buffer." (choice (const :tag "Unlimited" t) (integer :tag "Messages")) (lsp-mode . "6.1") lsp-keep-workspace-alive #[0 "\300\207" [t] 1] "If non nil keep workspace alive when the last workspace buffer is closed." lsp-enable-snippet #[0 "\300\207" [t] 1] "Enable/disable snippet completion support." lsp-completion lsp-enable-folding #[0 "\300\207" [t] 1] "Enable/disable code folding support." (lsp-mode . "6.1") lsp-enable-semantic-highlighting lsp-semantic-tokens-enable "lsp-mode 7.1" #[0 "\300\207" [nil] 1] "Enable/disable support for semantic tokens.\nAs defined by the Language Server Protocol 3.16." lsp-semantic-tokens lsp-folding-range-limit #[0 "\300\207" [nil] 1] "The maximum number of folding ranges to receive from the language server." (choice (const :tag "No limit." nil) (integer :tag "Number of lines.")) (lsp-mode . "6.1") lsp-folding-line-folding-only #[0 "\300\207" [nil] 1] "If non-nil, only fold complete lines." (lsp-mode . "6.1") lsp-client-packages #[0 "\300\207" [(ccls lsp-actionscript lsp-ada lsp-angular lsp-bash lsp-beancount lsp-clangd lsp-clojure lsp-cmake lsp-crystal lsp-csharp lsp-css lsp-d lsp-dart lsp-dhall lsp-dockerfile lsp-elm lsp-elixir lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-hack lsp-grammarly lsp-groovy lsp-haskell lsp-haxe lsp-java lsp-javascript lsp-json lsp-kotlin lsp-ltex lsp-lua lsp-markdown lsp-nim lsp-nix lsp-metals lsp-ocaml lsp-perl lsp-php lsp-pwsh lsp-pyls lsp-pylsp lsp-python-ms lsp-purescript lsp-r lsp-rf lsp-rust lsp-solargraph lsp-sorbet lsp-tex lsp-terraform lsp-v lsp-vala lsp-verilog lsp-vetur lsp-vhdl lsp-vimscript lsp-xml lsp-yaml lsp-sqls lsp-svelte lsp-steep lsp-zig)] 1] "List of the clients to be automatically required." (repeat symbol) lsp-progress-via-spinner #[0 "\300\207" [t] 1] "If non-nil, display LSP $/progress reports via a spinner in the modeline."] 10) (defvar lsp--cur-workspace nil nil) (make-variable-buffer-local 'lsp--cur-workspace) (defvar lsp--cur-version 0 nil) (make-variable-buffer-local 'lsp--cur-version) (defvar lsp--virtual-buffer-connections nil nil) (make-variable-buffer-local 'lsp--virtual-buffer-connections) (defvar lsp--virtual-buffer nil nil) (make-variable-buffer-local 'lsp--virtual-buffer) (defvar lsp--virtual-buffer-mappings (make-hash-table :test 'equal)) #@24 Prefix for a file-uri. (defvar lsp--uri-file-prefix (byte-code "\301=\203\302\207\303\207" [system-type windows-nt "file:///" "file://"] 2) (#$ . 5671)) #@71 If set, return it instead of calculating it using `buffer-file-name'. (defvar lsp-buffer-uri nil (#$ . 5833)) (byte-code "\300\301!\210\302\303\304\"\210\302\305\306\303#\210\302\307\310\303#\210\302\311\312\303#\210\302\313\314\303#\210\302\315\316\303#\210\302\317\320\303#\210\321\322\323\324\325DD\326\327\330\331\332&\210\321\333\323\324\334DD\335\327\330\331\336&\210\321\337\323\324\340DD\341\327\330\331\342&\210\321\343\323\324\344DD\345\327\330\331\332\346\347& \210\321\350\323\324\351DD\352\327\330\331\353\354\355\346\356& \207" [make-variable-buffer-local lsp-buffer-uri define-error lsp-error "Unknown lsp-mode error" lsp-empty-response-error "Empty response from the language server" lsp-timed-out-error "Timed out while waiting for a response from the language server" lsp-capability-not-supported "Capability not supported by the language server" lsp-file-scheme-not-supported "Unsupported file scheme" lsp-client-already-exists-error "A client with this server-id already exists" lsp-no-code-actions "No code actions" custom-declare-variable lsp-auto-guess-root funcall function #[0 "\300\207" [nil] 1] "Automatically guess the project root using projectile/project.\nDo *not* use this setting unless you are familiar with `lsp-mode'\ninternals and you are sure that all of your projects are\nfollowing `projectile'/`project.el' conventions." :group lsp-mode :type boolean lsp-restart #[0 "\300\207" [interactive] 1] "Defines how server-exited events must be handled." (choice (const interactive) (const auto-restart) (const ignore)) lsp-session-file #[0 "\300\301\302!!\207" [expand-file-name locate-user-emacs-file ".lsp-session-v1"] 3] "File where session information is stored." file lsp-auto-configure #[0 "\300\207" [t] 1] "Auto configure `lsp-mode' main features.\nWhen set to t `lsp-mode' will auto-configure completion,\ncode-actions, breadcrumb, `flycheck', `flymake', `imenu', symbol highlighting,\nlenses, links, and so on.\n\nFor finer granularity you may use `lsp-enable-*' properties." :package-version (lsp-mode . "6.1") lsp-disabled-clients #[0 "\300\207" [nil] 1] "A list of disabled/blacklisted clients.\nEach entry in the list can be either:\na symbol, the server-id for the LSP client, or\na cons pair (MAJOR-MODE . CLIENTS), where MAJOR-MODE is the major-mode,\nand CLIENTS is either a client or a list of clients.\n\nThis option can also be used as a file- or directory-local variable to\ndisable a language server for individual files or directories/projects\nrespectively." (repeat (symbol)) :safe listp (lsp-mode . "6.1")] 12) #@95 Hash table server-id -> client. It contains all of the clients that are currently registered. (defvar lsp-clients (make-hash-table :test 'eql) (#$ . 8414)) #@110 List of clients allowed to be used for projects. When nil, all registered clients are considered candidates. (defvar lsp-enabled-clients nil (#$ . 8577)) #@18 Last request id. (defvar lsp-last-id 0 (#$ . 8737)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\300\315\302\303\316DD\317\306\307\310\311&\210\300\320\302\303\321DD\322\306\307\310\311&\210\300\323\302\303\324DD\325\306\326\310\311\327\330& \210\331\332\333\334#\210\335\211\203u\211@\332N\203n\333N\204n\336\333\332N#\210A\266\202\202T\210\337\332\333\340#\210\300\333\302\303\341DD\342\310\311\306\343\327\344& \210\345\332\333\334#\210\346\332\333\347#\207" [custom-declare-variable lsp-before-initialize-hook funcall function #[0 "\300\207" [nil] 1] "List of functions to be called before a Language Server has been initialized\nfor a new workspace." :type hook :group lsp-mode lsp-after-initialize-hook #[0 "\300\207" [nil] 1] "List of functions to be called after a Language Server has been initialized\nfor a new workspace." lsp-before-open-hook #[0 "\300\207" [nil] 1] "List of functions to be called before a new file with LSP support is opened." lsp-after-open-hook #[0 "\300\207" [nil] 1] "List of functions to be called after a new file with LSP support is opened." lsp-enable-file-watchers #[0 "\300\207" [t] 1] "If non-nil lsp-mode will watch the files in the workspace if\nthe server has requested that." boolean :package-version (lsp-mode . "6.1") defvaralias lsp-file-watch-ignored lsp-file-watch-ignored-directories nil (saved-value saved-variable-comment) put make-obsolete-variable "7.1.0" #[0 "\300\207" [("[/\\\\]\\.git\\'" "[/\\\\]\\.github\\'" "[/\\\\]\\.circleci\\'" "[/\\\\]\\.hg\\'" "[/\\\\]\\.bzr\\'" "[/\\\\]_darcs\\'" "[/\\\\]\\.svn\\'" "[/\\\\]_FOSSIL_\\'" "[/\\\\]\\.idea\\'" "[/\\\\]\\.ensime_cache\\'" "[/\\\\]\\.eunit\\'" "[/\\\\]node_modules" "[/\\\\]\\.yarn\\'" "[/\\\\]\\.fslckout\\'" "[/\\\\]\\.tox\\'" "[/\\\\]dist\\'" "[/\\\\]dist-newstyle\\'" "[/\\\\]\\.stack-work\\'" "[/\\\\]\\.bloop\\'" "[/\\\\]\\.metals\\'" "[/\\\\]target\\'" "[/\\\\]\\.ccls-cache\\'" "[/\\\\]\\.vscode\\'" "[/\\\\]\\.deps\\'" "[/\\\\]build-aux\\'" "[/\\\\]autom4te.cache\\'" "[/\\\\]\\.reference\\'" "[/\\\\]\\.lsp\\'" "[/\\\\]\\.clj-kondo\\'" "[/\\\\]\\.shadow-cljs\\'" "[/\\\\]\\.babel_cache\\'" "[/\\\\]\\.cpcache\\'" "[/\\\\]bin/Debug\\'" "[/\\\\]obj\\'" "[/\\\\]_opam\\'" "[/\\\\]_build\\'" "[/\\\\]\\.direnv\\'")] 1] "List of regexps matching directory paths which won't be monitored when\ncreating file watches. Customization of this variable is only honored at\nthe global level or at a root of an lsp workspace." (repeat string) (lsp-mode . "7.1.0") defalias make-obsolete "7.0.1"] 10) (defalias 'lsp-file-watch-ignored-directories #[0 "\207" [lsp-file-watch-ignored-directories] 1]) (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315\316\317& \210\300\305\302\303#\210\304\320\306\307\321DD\322\314\323\312\313\316\324& \207" [put lsp-file-watch-ignored-directories safe-local-variable lsp--string-listp custom-declare-variable lsp-file-watch-ignored-files funcall function #[0 "\300\207" [("[/\\\\]flycheck_[^/\\\\]+\\'" "[/\\\\]\\.#[^/\\\\]+\\'" "[/\\\\][^/\\\\]+~\\'")] 1] "List of regexps matching files for which change events will\nnot be sent to the server.\n\nThis setting has no impact on whether a file-watch is created for\na directory; it merely prevents notifications pertaining to\nmatched files from being sent to the server. To prevent a\nfile-watch from being created for a directory, customize\n`lsp-file-watch-ignored-directories'\n\nCustomization of this variable is only honored at the global\nlevel or at a root of an lsp workspace." :group lsp-mode :type (repeat string) :package-version (lsp-mode . "7.1.0") lsp-after-uninitialized-functions #[0 "\300\207" [nil] 1] "List of functions to be called after a Language Server has been uninitialized." hook (lsp-mode . "6.3")] 10) (defconst lsp--sync-none 0) (defconst lsp--sync-full 1) (defconst lsp--sync-incremental 2) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\300\314\302\303\315DD\316\306\317\310\311\312\320& \207" [custom-declare-variable lsp-debounce-full-sync-notifications funcall function #[0 "\300\207" [t] 1] "If non-nil debounce full sync events.\nThis flag affects only servers which do not support incremental updates." :type boolean :group lsp-mode :package-version (lsp-mode . "6.1") lsp-debounce-full-sync-notifications-interval #[0 "\300\207" [1.0] 1] "Time to wait before sending full sync synchronization after buffer modification." float (lsp-mode . "6.1")] 10) (defvar lsp--stderr-index 0) (defvar lsp--delayed-requests nil) (defvar lsp--delay-timer nil) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\315\310\311\321\322& \210\300\323\302\303\324DD\325\306\315\310\311\321\326& \210\300\327\302\303\330DD\331\306\315\310\311\321\332& \210\300\333\302\303\334DD\335\306\315\310\311&\210\300\336\302\303\337DD\340\306\315\310\311&\210\341\342\343\344#\210\345\211\203\227\211@\342N\203\220\343N\204\220\346\343\342N#\210A\266\202\202v\210\347\342\343\350#\210\300\343\302\303\351DD\352\306\315\310\353&\210\300\354\302\303\355DD\356\306\315\310\311&\210\300\357\302\303\360DD\361\306\315\310\311&\210\300\362\302\303\363DD\364\306\315\310\311&\210\300\365\302\303\366DD\367\306\315\310\311&\210\300\370\302\303\371DD\372\306\315\310\311&\210\300\373\302\303\374DD\375\306\315\310\311&\210\300\376\302\303\377DD\201@\306\201A\310\311\321\201B& \210\300\201C\302\303\201DDD\201E\306\315\310\201F&\210\300\201G\302\303\201HDD\201I\306\315\310\201F&\210\300\201J\302\303\201KDD\201L\306\315\310\201F\321\201M& \210\300\201N\302\303\201ODD\201P\306\315\310\201Q&\210\300\201R\302\303\201SDD\201T\306\201A\310\311&\210\300\201U\302\303\201VDD\201W\306\201A\310\311&\210\300\201X\302\303\201YDD\201Z\306\201A\310\311&\210\341\201X\201[\344#\210\345\211\203\367\211@\201XN\203\360\201[N\204\360\346\201[\201XN#\210A\266\202\202\316\210\347\201X\201[\201\\#\210\300\201[\302\303\201]DD\201^\306\201A\310\311&\210\341\201_\201`\344#\210\345\211\203O\211@\201_N\203H\201`N\204H\346\201`\201_N#\210A\266\202\202&\210\347\201_\201`\201a#\210\300\201`\302\303\201bDD\201c\306\201A\310\311&\210\300\201d\302\303\201eDD\201f\306\201A\310\311&\210\300\201g\302\303\201hDD\201i\306\201A\310\311&\210\201j\201k\344\201l\310\311\201m\201n&\210\300\201o\302\303\201pDD\201q\306\315\310\201k&\210\300\201r\302\303\201sDD\201t\306\201u\310\201k&\210\300\201v\302\303\201wDD\201x\306\201y\310\201k&\210\300\201z\302\303\201{DD\201|\306\201}\310\201k&\210\300\201~\302\303\201DD\201\200\306\201\201\310\311&\210\300\201\202\302\303\201\203DD\201\204\306\201\201\310\311\321\201\205& \207" [custom-declare-variable lsp-document-sync-method funcall function #[0 "\300\207" [nil] 1] "How to sync the document with the language server." :type (choice (const :tag "Documents should not be synced at all." nil) (const :tag "Documents are synced by always sending the full content of the document." lsp--sync-full) (const :tag "Documents are synced by always sending incremental changes to the document." lsp--sync-incremental) (const :tag "Use the method recommended by the language server." nil)) :group lsp-mode lsp-auto-execute-action #[0 "\300\207" [t] 1] "Auto-execute single action." boolean lsp-enable-links #[0 "\300\207" [t] 1] "If non-nil, all references to links in a file will be made clickable, if\nsupported by the language server." :package-version (lsp-mode . "6.1") lsp-enable-imenu #[0 "\300\207" [t] 1] "If non-nil, automatically enable `imenu' integration when server provides\n`textDocument/documentSymbol'." (lsp-mode . "6.2") lsp-enable-dap-auto-configure #[0 "\300\207" [t] 1] "If non-nil, enable `dap-auto-configure-mode`." (lsp-mode . "7.0") lsp-eldoc-enable-hover #[0 "\300\207" [t] 1] "If non-nil, `eldoc' will display hover info when it is present." lsp-eldoc-render-all #[0 "\300\207" [nil] 1] "Display all of the info returned by document/onHover.\nIf this is set to nil, `eldoc' will show only the symbol information." defvaralias lsp-enable-completion-at-point lsp-completion-enable nil (saved-value saved-variable-comment) put make-obsolete-variable "lsp-mode 7.0.1" #[0 "\300\207" [t] 1] "Enable `completion-at-point' integration." lsp-completion lsp-enable-symbol-highlighting #[0 "\300\207" [t] 1] "Highlight references of the symbol at point." lsp-enable-xref #[0 "\300\207" [t] 1] "Enable xref integration." lsp-enable-indentation #[0 "\300\207" [t] 1] "Indent regions using the file formatting functionality provided by the\nlanguage server." lsp-enable-on-type-formatting #[0 "\300\207" [t] 1] "Enable `textDocument/onTypeFormatting' integration." lsp-enable-text-document-color #[0 "\300\207" [t] 1] "Enable `textDocument/documentColor' integration." lsp-before-save-edits #[0 "\300\207" [t] 1] "If non-nil, `lsp-mode' will apply edits suggested by the language server\nbefore saving a document." lsp-after-apply-edits-hook #[0 "\300\207" [nil] 1] "Hooks to run when text edit is applied.\nIt contains the operation source." hook (lsp-mode . "7.1") lsp-modeline-code-actions-enable #[0 "\300\207" [t] 1] "Whether to show code actions on modeline." lsp-modeline lsp-modeline-diagnostics-enable #[0 "\300\207" [t] 1] "Whether to show diagnostics on modeline." lsp-modeline-workspace-status-enable #[0 "\300\207" [t] 1] "Whether to show workspace status on modeline." (lsp-mode . "7.1") lsp-headerline-breadcrumb-enable #[0 "\300\207" [t] 1] "Whether to enable breadcrumb on headerline." lsp-headerline lsp-configure-hook #[0 "\300\207" [nil] 1] "Hooks to run when `lsp-configure-buffer' is called." lsp-unconfigure-hook #[0 "\300\207" [nil] 1] "Hooks to run when `lsp-unconfig-buffer' is called." lsp-after-diagnostics-hook #[0 "\300\207" [nil] 1] "Hooks to run after diagnostics are received.\nNote: it runs only if the receiving buffer is open. Use\n`lsp-diagnostics-updated-hook'if you want to be notified when\ndiagnostics have changed." lsp-diagnostics-updated-hook "lsp-mode 6.4" #[0 "\300\207" [nil] 1] "Hooks to run after diagnostics are received." lsp-workspace-folders-changed-hook lsp-workspace-folders-changed-functions "lsp-mode 6.3" #[0 "\300\207" [nil] 1] "Hooks to run after the folders has changed.\nThe hook will receive two parameters list of added and removed folders." lsp-eldoc-hook #[0 "\300\207" [(lsp-hover)] 1] "Hooks to run for eldoc." lsp-before-apply-edits-hook #[0 "\300\207" [nil] 1] "Hooks to run before applying edits." custom-declare-group lsp-imenu "LSP Imenu." :tag "LSP Imenu" lsp-imenu-show-container-name #[0 "\300\207" [t] 1] "Display the symbol's container name in an imenu entry." lsp-imenu-container-name-separator #[0 "\300\207" [#1="/"] 1 #1#] "Separator string to use to separate the container name from the symbol while\ndisplaying imenu entries." string lsp-imenu-sort-methods #[0 "\300\207" [(kind name)] 1] "How to sort the imenu items.\n\nThe value is a list of `kind' `name' or `position'. Priorities\nare determined by the index of the element." (repeat (choice (const name) (const position) (const kind))) lsp-imenu-index-symbol-kinds #[0 "\300\207" [nil] 1] "Which symbol kinds to show in imenu." (repeat (choice (const :tag "Miscellaneous" nil) (const :tag "File" File) (const :tag "Module" Module) (const :tag "Namespace" Namespace) (const :tag "Package" Package) (const :tag "Class" Class) (const :tag "Method" Method) (const :tag "Property" Property) (const :tag "Field" Field) (const :tag "Constructor" Constuctor) (const :tag "Enum" Enum) (const :tag "Interface" Interface) (const :tag "Function" Function) (const :tag "Variable" Variable) (const :tag "Constant" Constant) (const :tag "String" String) (const :tag "Number" Number) (const :tag "Boolean" Boolean) (const :tag "Array" Array) (const :tag "Object" Object) (const :tag "Key" Key) (const :tag "Null" Null) (const :tag "Enum Member" EnumMember) (const :tag "Struct" Struct) (const :tag "Event" Event) (const :tag "Operator" Operator) (const :tag "Type Parameter" TypeParameter))) lsp-response-timeout #[0 "\300\207" [10] 1] "Number of seconds to wait for a response from the language server before\ntiming out." number lsp-tcp-connection-timeout #[0 "\300\207" [2] 1] "The timeout for tcp connection in seconds." (lsp-mode . "6.2")] 10) #@318 An alist of (METHOD . FUNCTION). METHOD is one of the symbols accepted by `lsp-imenu-sort-methods'. FUNCTION takes two hash tables representing DocumentSymbol. It returns a negative number, 0, or a positive number indicating whether the first parameter is less than, equal to, or greater than the second parameter. (defconst lsp--imenu-compare-function-alist (byte-code "\300\301B\302\303B\304\305BE\207" [name lsp--imenu-compare-name kind lsp--imenu-compare-kind position lsp--imenu-compare-line-col] 4) (#$ . 21202)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\300\314\302\303\315DD\316\306\317\310\320\312\321& \207" [custom-declare-variable lsp-diagnostic-clean-after-change funcall function #[0 "\300\207" [nil] 1] "When non-nil, clean the diagnostics on change.\n\nNote that when that setting is nil, `lsp-mode' will show stale\ndiagnostics until server publishes the new set of diagnostics" :type boolean :group lsp-diagnostics :package-version (lsp-mode . "7.0.1") lsp-server-trace #[0 "\300\207" [nil] 1] "Request tracing on the server side.\nThe actual trace output at each level depends on the language server in use.\nChanges take effect only when a new session is started." (choice (const :tag "Disabled" "off") (const :tag "Messages only" "messages") (const :tag "Verbose" "verbose") (const :tag "Default (disabled)" nil)) lsp-mode (lsp-mode . "6.1")] 10) #@28 Language id configuration. (defvar lsp-language-id-configuration '((".*\\.vue$" . "vue") (".*\\.tsx$" . "typescriptreact") (".*\\.ts$" . "typescript") (".*\\.jsx$" . "javascriptreact") (".*\\.js$" . "javascript") (".*\\.xml$" . "xml") (".*\\.hx$" . "haxe") (".*\\.lua$" . "lua") (".*\\.sql$" . "sql") (".*\\.html$" . "html") (".*\\.css" . "css") (".*/settings.json$" . "jsonc") (".*\\.json$" . "json") (".*\\.jsonc$" . "jsonc") (".*\\.php$" . "php") (".*\\.svelte$" . "svelte") (ada-mode . "ada") (nxml-mode . "xml") (sql-mode . "sql") (vimrc-mode . "vim") (sh-mode . "shellscript") (scala-mode . "scala") (julia-mode . "julia") (clojure-mode . "clojure") (clojurec-mode . "clojure") (clojurescript-mode . "clojurescript") (java-mode . "java") (jdee-mode . "java") (groovy-mode . "groovy") (python-mode . "python") (cython-mode . "python") (lsp--render-markdown . "markdown") (rust-mode . "rust") (rustic-mode . "rust") (kotlin-mode . "kotlin") (css-mode . "css") (less-mode . "less") (less-css-mode . "less") (lua-mode . "lua") (sass-mode . "sass") (scss-mode . "scss") (xml-mode . "xml") (c-mode . "c") (c++-mode . "cpp") (objc-mode . "objective-c") (html-mode . "html") (sgml-mode . "html") (mhtml-mode . "html") (go-dot-mod-mode . "go.mod") (go-mode . "go") (haskell-mode . "haskell") (hack-mode . "hack") (php-mode . "php") (powershell-mode . "powershell") (powershell-mode . "PowerShell") (json-mode . "json") (jsonc-mode . "jsonc") (rjsx-mode . "javascript") (js2-mode . "javascript") (js-mode . "javascript") (typescript-mode . "typescript") (fsharp-mode . "fsharp") (reason-mode . "reason") (caml-mode . "ocaml") (tuareg-mode . "ocaml") (swift-mode . "swift") (elixir-mode . "elixir") (conf-javaprop-mode . "spring-boot-properties") (yaml-mode . "spring-boot-properties-yaml") (ruby-mode . "ruby") (enh-ruby-mode . "ruby") (fortran-mode . "fortran") (f90-mode . "fortran") (elm-mode . "elm") (dart-mode . "dart") (erlang-mode . "erlang") (dockerfile-mode . "dockerfile") (csharp-mode . "csharp") (csharp-tree-sitter-mode . "csharp") (plain-tex-mode . "plaintex") (latex-mode . "latex") (v-mode . "v") (vhdl-mode . "vhdl") (verilog-mode . "verilog") (terraform-mode . "terraform") (ess-julia-mode . "julia") (ess-r-mode . "r") (crystal-mode . "crystal") (nim-mode . "nim") (dhall-mode . "dhall") (cmake-mode . "cmake") (purescript-mode . "purescript") (gdscript-mode . "gdscript") (perl-mode . "perl") (cperl-mode . "perl") (robot-mode . "robot") (racket-mode . "racket") (nix-mode . "nix") (prolog-mode . "prolog") (vala-mode . "vala") (actionscript-mode . "actionscript") (d-mode . "d") (zig-mode . "zig") (text-mode . "plaintext") (markdown-mode . "markdown") (beancount-mode . "beancount")) (#$ . 22605)) #@116 Keep track of last active workspace. We want to try the last workspace first when jumping into a library directory (defvar lsp--last-active-workspaces nil (#$ . 25329)) #@144 Map methods to requirements. It is used by request-sending functions to determine which server must be used for handling a particular message. (defvar lsp-method-requirements '(("textDocument/callHierarchy" :capability :callHierarchyProvider) ("textDocument/codeAction" :capability :codeActionProvider) ("codeAction/resolve" :check-command (lambda (workspace) (with-lsp-workspace workspace (lsp:code-action-options-resolve-provider\? (or (lsp--capability :codeActionProvider) (when-let ((maybe-capability (lsp--registered-capability "textDocument/codeAction")) (capability-options (lsp--registered-capability-options maybe-capability))) capability-options)))))) ("textDocument/codeLens" :capability :codeLensProvider) ("textDocument/completion" :capability :completionProvider) ("completionItem/resolve" :check-command (lambda (wk) (with-lsp-workspace wk (lsp:completion-options-resolve-provider\? (lsp--capability :completionProvider))))) ("textDocument/declaration" :capability :declarationProvider) ("textDocument/definition" :capability :definitionProvider) ("textDocument/documentColor" :capability :colorProvider) ("textDocument/documentLink" :capability :documentLinkProvider) ("textDocument/documentHighlight" :capability :documentHighlightProvider) ("textDocument/documentSymbol" :capability :documentSymbolProvider) ("textDocument/foldingRange" :capability :foldingRangeProvider) ("textDocument/formatting" :capability :documentFormattingProvider) ("textDocument/hover" :capability :hoverProvider) ("textDocument/implementation" :capability :implementationProvider) ("textDocument/onTypeFormatting" :capability :documentOnTypeFormattingProvider) ("textDocument/prepareRename" :check-command (lambda (workspace) (with-lsp-workspace workspace (lsp:rename-options-prepare-provider\? (or (lsp--capability :renameProvider) (when-let ((maybe-capability (lsp--registered-capability "textDocument/rename"))) (lsp--registered-capability-options maybe-capability))))))) ("textDocument/rangeFormatting" :capability :documentRangeFormattingProvider) ("textDocument/references" :capability :referencesProvider) ("textDocument/rename" :capability :renameProvider) ("textDocument/selectionRange" :capability :selectionRangeProvider) ("textDocument/semanticTokens" :capability :semanticTokensProvider) ("textDocument/semanticTokensFull" :check-command (lambda (workspace) (with-lsp-workspace workspace (lsp-get (lsp--capability :semanticTokensProvider) :full)))) ("textDocument/semanticTokensFull/Delta" :check-command (lambda (workspace) (with-lsp-workspace workspace (let ((capFull (lsp-get (lsp--capability :semanticTokensProvider) :full))) (and (not (booleanp capFull)) (lsp-get capFull :delta)))))) ("textDocument/semanticTokensRangeProvider" :check-command (lambda (workspace) (with-lsp-workspace workspace (lsp-get (lsp--capability :semanticTokensProvider) :range)))) ("textDocument/signatureHelp" :capability :signatureHelpProvider) ("textDocument/typeDefinition" :capability :typeDefinitionProvider) ("workspace/executeCommand" :capability :executeCommandProvider) ("workspace/symbol" :capability :workspaceSymbolProvider)) (#$ . 25505)) (defconst lsp--file-change-type '((created . 1) (changed . 2) (deleted . 3))) (defconst lsp--watch-kind '((create . 1) (change . 2) (delete . 4))) #@39 Window body width when rendering doc. (defvar lsp-window-body-width 40 (#$ . 28799)) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\313\304\305%\210\314\315\316\317#\210\320\211\203@\211@\315N\2039\316N\2049\321\316\315N#\210A\266\202\202\210\322\315\316\323#\210\324\316\325\326\327DD\330\304\331\332\333\334\335& \210\324\336\325\326\337DD\340\304\305\332\333&\210\324\341\325\326\342DD\343\332\344\304\305&\207" [custom-declare-face lsp-face-highlight-textual ((t :inherit highlight)) "Face used for textual occurrences of symbols." :group lsp-mode lsp-face-highlight-read ((t :inherit highlight :underline t)) "Face used for highlighting symbols being read." lsp-face-highlight-write ((t :inherit highlight :weight bold)) "Face used for highlighting symbols being written to." defvaralias lsp-lens-auto-enable lsp-lens-enable nil (saved-value saved-variable-comment) put make-obsolete-variable "lsp-mode 7.0.1" custom-declare-variable funcall function #[0 "\300\207" [nil] 1] "Auto enable lenses if server supports." lsp-lens :type boolean :package-version (lsp-mode . "6.3") lsp-symbol-highlighting-skip-current #[0 "\300\207" [nil] 1] "If non-nil skip current symbol when setting symbol highlights." lsp-file-watch-threshold #[0 "\300\207" [1000] 1] "Show warning if the files to watch are more than.\nSet to nil to disable the warning." number] 10) #@86 Mode to uses with markdown code blocks. They are added to `markdown-code-lang-modes' (defvar lsp-custom-markup-modes '((rust-mode "no_run" "rust,no_run" "rust,ignore" "rust,should_panic")) (#$ . 30209)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\300\314\302\303\315DD\316\306\317\310\311\312\320& \210\300\321\302\303\322DD\323\306\324\310\311\312\325& \210\300\326\302\303\327DD\330\306\303\310\311\312\331& \210\300\332\302\303\333DD\334\310\311\306\335\312\336& \207" [custom-declare-variable lsp-signature-render-documentation funcall function #[0 "\300\207" [t] 1] "Display signature documentation in `eldoc'." :type boolean :group lsp-mode :package-version (lsp-mode . "6.2") lsp-signature-auto-activate #[0 "\300\207" [(:on-trigger-char :on-server-request)] 1] "Auto activate signature conditions." (repeat (choice (const :tag "On trigger chars pressed." :on-trigger-char) (const :tag "After selected completion." :after-completion) (const :tag "When the server has sent show signature help." :on-server-request))) (lsp-mode . "6.2") lsp-signature-doc-lines #[0 "\300\207" [20] 1] "If number, limit the number of lines to show in the docs." number (lsp-mode . "6.3") lsp-signature-function #[0 "\300\207" [lsp-lv-message] 1] "The function used for displaying signature info.\nIt will be called with one param - the signature info. When\ncalled with nil the signature info must be cleared." (lsp-mode . "6.3") lsp-keymap-prefix #[0 "\300\207" [#1="s-l"] 1 #1#] "LSP-mode keymap prefix." string (lsp-mode . "6.3")] 10) #@32 List of the buffer workspaces. (defvar lsp--buffer-workspaces nil (#$ . 31765)) (make-variable-buffer-local 'lsp--buffer-workspaces) #@59 Contain the `lsp-session' for the current Emacs instance. (defvar lsp--session nil (#$ . 31904)) (defvar lsp--tcp-port 10000) #@55 If nil, `lsp-client-packages' are yet to be required. (defvar lsp--client-packages-required nil (#$ . 32036)) #@258 The server socket which is opened when using `lsp-tcp-server' (a server socket is opened in Emacs and the language server connects to it). The default value of 0 ensures that a random high port is used. Set it to a positive integer to use a specific port. (defvar lsp--tcp-server-port 0 (#$ . 32153)) #@102 Wait this amount of time for the client to connect to our server socket when using `lsp-tcp-server'. (defvar lsp--tcp-server-wait-seconds 10 (#$ . 32462)) #@30 The latest document symbols. (defvar lsp--document-symbols nil (#$ . 32623)) (make-variable-buffer-local 'lsp--document-symbols) #@31 The document selection cache. (defvar lsp--document-selection-range-cache nil (#$ . 32758)) (make-variable-buffer-local 'lsp--document-selection-range-cache) #@54 If non-nil, request document symbols asynchronously. (defvar lsp--document-symbols-request-async nil (#$ . 32922)) (make-variable-buffer-local 'lsp--document-symbols-request-async) #@88 The value of `buffer-chars-modified-tick' when document symbols were last retrieved. (defvar lsp--document-symbols-tick -1 (#$ . 33109)) (make-variable-buffer-local 'lsp--document-symbols-tick) #@191 Set to `t' on symbol highlighting, cleared on `lsp--cleanup-highlights-if-needed'. Checking a separately defined flag is substantially faster than unconditionally calling `remove-overlays'. (defvar lsp--have-document-highlights nil (#$ . 33312)) (make-variable-buffer-local 'lsp--have-document-highlights) (defvar lsp--eldoc-saved-message nil nil) (make-variable-buffer-local 'lsp--eldoc-saved-message) (defvar lsp--on-change-timer nil) (defvar lsp--on-idle-timer nil) (defvar lsp--signature-last nil nil) (make-variable-buffer-local 'lsp--signature-last) (defvar lsp--signature-last-index nil nil) (make-variable-buffer-local 'lsp--signature-last-index) (defvar lsp--signature-last-buffer nil) (defvar lsp--virtual-buffer-point-max nil nil) (byte-code "\300\301!\210\302\303\304\303\305\306#\307#\207" [make-variable-buffer-local lsp--virtual-buffer-point-max defalias lsp-execute-command cl-generic-define (server command arguments) nil "Ask SERVER to execute COMMAND with ARGUMENTS.\n\n(fn SERVER COMMAND ARGUMENTS)"] 6) #@78 Return Nth element of SEQUENCE or nil if N is out of range. (fn SEQUENCE N) (defalias 'lsp-elt #[514 "<\203 \234\207\300!\203GV\205$H\207GV\205$\234\207" [arrayp] 4 (#$ . 34342)]) #@54 Return the first element of SEQUENCE. (fn SEQUENCE) (defalias 'lsp-seq-first #[257 "\300\301\"\207" [lsp-elt 0] 4 (#$ . 34546)]) #@84 Return a sequence of the elements of SEQUENCE except the first one. (fn SEQUENCE) (defalias 'lsp-seq-rest #[257 "\300\301\"\207" [seq-drop 1] 4 (#$ . 34683)]) #@76 Return t if all elements of SEQUENCE are strings, else nil. (fn SEQUENCE) (defalias 'lsp--string-listp #[257 "\300\301\"?\207" [seq-find #[257 "\211;?\207" [] 2 "\n\n(fn X)"]] 4 (#$ . 34850)]) #@123 Returns true if CANDIDATE is a vector data structure and every element of it is of type string, else nil. (fn CANDIDATE) (defalias 'lsp--string-vector-p #[257 "\300!\205\n\301\302\"\207" [vectorp seq-every-p stringp] 4 (#$ . 35052)]) (make-obsolete 'lsp--string-vector-p nil "lsp-mode 7.1") #@63 Function for `lsp-editable-vector' :match. (fn WIDGET VALUE) (defalias 'lsp--editable-vector-match #[514 "\211<\204 \300!\205\301\"AG\207" [vectorp lsp--editable-vector-match-inline] 5 (#$ . 35353)]) #@67 Value for `lsp-editable-vector' :match-inline. (fn WIDGET VALUE) (defalias 'lsp--editable-vector-match-inline #[514 "\300\301\"@\302\303\203H\203H\304\"\211\203A\305!\203#\211\306H\202%\211@\305!\2032\307\310\"\2024A\311\"\262\262\266\202\303\262\210\202\211B\207" [widget-get :args t nil widget-match-inline vectorp 0 seq-drop 1 append] 11 (#$ . 35566)]) #@74 Convert the internal list value to a vector. (fn WIDGET INTERNAL-VALUE) (defalias 'lsp--editable-vector-value-to-external #[514 "\211<\203\n\300\301\"\207\207" [apply vector] 5 (#$ . 35956)]) #@74 Convert the external vector value to a list. (fn WIDGET EXTERNAL-VALUE) (defalias 'lsp--editable-vector-value-to-internal #[514 "\300!\203 \301\302\"\207\207" [vectorp append nil] 5 (#$ . 36157)]) (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313& \210\300\314\301\315\316\317\320\321&\210\300\322\323\324\325\326\316\327\330\331& \210\332\322\333\334#\207" [define-widget lsp--editable-vector editable-list "A subclass of `editable-list' that accepts and returns a\nvector instead of a list." :value-to-external lsp--editable-vector-value-to-external :value-to-internal lsp--editable-vector-value-to-internal :match lsp--editable-vector-match :match-inline lsp--editable-vector-match-inline lsp-repeatable-vector "A variable length homogeneous vector." :tag "Repeat" :format "%{%t%}:\n%v%i\n" lsp-string-vector lazy "A vector of zero or more elements, every element of which is a string.\nAppropriate for any language-specific `defcustom' that needs to\nserialize as a JSON array of strings.\n\nDeprecated. Use `lsp-repeatable-vector' instead. " :offset 4 "Vector" :type (lsp-repeatable-vector string) make-obsolete nil "lsp-mode 7.1"] 12) #@49 If non-nil, show debug message from `lsp-mode'. (defvar lsp--show-message t (#$ . 37320)) #@390 Wrapper for `message' We `inhibit-message' the message when the cursor is in the minibuffer and when emacs version is before emacs 27 due to the fact that we often use `lsp--info', `lsp--warn' and `lsp--error' in async context and the call to these function is removing the minibuffer prompt. The issue with async messages is already fixed in emacs 27. See #2049 (fn FORMAT &rest ARGS) (defalias 'lsp--message #[385 "\205\303 \205 \304 \305\"\306\307#)\207" [lsp--show-message emacs-version inhibit-message minibufferp version< "27.0" apply message] 6 (#$ . 37417)]) #@73 Display lsp info message with FORMAT with ARGS. (fn FORMAT &rest ARGS) (defalias 'lsp--info #[385 "\300\301\302\303\304\305#\306\307##\207" [lsp--message "%s :: %s" propertize "LSP" face success apply format] 9 (#$ . 38000)]) #@73 Display lsp warn message with FORMAT with ARGS. (fn FORMAT &rest ARGS) (defalias 'lsp--warn #[385 "\300\301\302\303\304\305#\306\307##\207" [lsp--message "%s :: %s" propertize "LSP" face warning apply format] 9 (#$ . 38237)]) #@74 Display lsp error message with FORMAT with ARGS. (fn FORMAT &rest ARGS) (defalias 'lsp--error #[385 "\300\301\302\303\304\305#\306\307##\207" [lsp--message "%s :: %s" propertize "LSP" face error apply format] 9 (#$ . 38474)]) #@40 Show MSG in eldoc. (fn &optional MSG) (defalias 'lsp--eldoc-message #[256 "\211\301\302\303\304\305\"#\207" [lsp--eldoc-saved-message run-with-idle-timer 0 nil make-closure #[0 "\301\300!\207" [V0 eldoc-message] 2]] 7 (#$ . 38711)]) #@114 Log message to the ’*lsp-log*’ buffer. FORMAT and ARGS i the same as for `message'. (fn FORMAT &rest ARGS) (defalias 'lsp-log #[385 "\205\207\303\304!\305\211\204$\306\304!\262r\211q\210\307 \210\310\311!\210\312\302!\210\313)r\211q\210\212\314\315#\313\211\316\317#\203C\313\225\262\211T\262\2020\262Tdb\210`e=\203X\317c\210\320u\210\202^\320u\210\317c\210c\210\n\\\250\205\202\nV\205\202\nZeb\210\211y\210e`|\210\211\262\266\202+\262\207" [lsp-log-max inhibit-read-only lsp--log-lines get-buffer "*lsp-log*" t get-buffer-create buffer-disable-undo view-mode 1 make-local-variable 0 apply format string-match "\n" -1] 10 (#$ . 38954)]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\207" [defalias lsp-message lsp-log lsp-ht ht lsp-file-local-name file-local-name] 3) #@75 Return the canonical FILE-NAME, without a trailing slash. (fn FILE-NAME) (defalias 'lsp-f-canonical #[257 "\300\301!!\207" [directory-file-name expand-file-name] 4 (#$ . 39780)]) (defalias 'lsp-canonical-file-name 'lsp-f-canonical) #@111 Return t if PATH-A and PATH-B are references to the same file. Symlinks are not followed. (fn PATH-A PATH-B) (defalias 'lsp-f-same\? #[514 "\300!\205\300!\205\301\302\303!!!\301\302\303!!!\232\207" [f-exists\? lsp-f-canonical directory-file-name f-expand] 7 (#$ . 40021)]) #@76 Return the parent directory to PATH. Symlinks are not followed. (fn PATH) (defalias 'lsp-f-parent #[257 "\301\302\303\"!!\304\"?\205\305!\203\306!\207\302!\207" [default-directory file-name-directory directory-file-name f-expand lsp-f-same\? f-relative\? f-relative] 6 (#$ . 40309)]) #@93 Return t if PATH-A is an ancestor of PATH-B. Symlinks are not followed. (fn PATH-A PATH-B) (defalias 'lsp-f-ancestor-of\? #[514 "\300\"?\205\301\302!\303 P\302!\"\207" [lsp-f-same\? s-prefix\? lsp-f-canonical f-path-separator] 6 (#$ . 40611)]) #@114 Merge RESULTS by filtering the empty hash-tables and merging the lists according to METHOD. (fn RESULTS METHOD) (defalias 'lsp--merge-results #[514 "\300\301\302\303\304\"\"\211\204\305\207\211:\203#\211\242\243\211\204\207\"\207\"\207" [#[514 "\301\267\202\212\302\303\304\"\211:\203\211\242\243\211\204\207!\207!\207\305\306\307\310\"\311\312\313\"$\207\211@\303\314\315\316\"\"\211\203J\317\320\321\314#\266\202\"\210\210\303\314\315\322\"\"\211\203t\323\324\325\307\326\"\206c\327\315\330\"\331\321\314#\266\202$\"\210\210\303\314\315\332\"\"\211\203\210\333\312\334\"\"\210\210\207\312\335\"\207" [lsp/markup-kind-plain-text #s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("textDocument/hover" 6 "textDocument/completion" 34 "completionItem/resolve" 48)) #[257 "\300\301\302\303\"\"\207" [lsp-make-hover :contents -mapcat #[257 "\300\301\"\302!\203\211;\204\303\304\"\207\211C\207" [gethash "contents" sequencep append nil] 5 "\n\n(fn INPUT0)"]] 6 "\n\n(fn HOVERS)"] seq-filter #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp-empty\? (not) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] lsp-make-completion-list :is-incomplete seq-some lsp:completion-list-is-incomplete :items cl-mapcan #[257 "\300\301!\203 \302!\202\303\"\207" [append lsp-completion-list\? lsp:completion-list-items nil] 4 "\n\n(fn IT)"] identity seq-map lsp:completion-item-detail\? lsp:set-completion-item-detail\? " " mapconcat lsp:completion-item-documentation\? lsp:set-completion-item-documentation\? lsp-make-markup-content :kind #[257 "\301!\232\205 \207" [lsp/markup-kind-markdown lsp:markup-content-kind] 3 "\n\n(fn IT)"] :value #[257 "\300!\206\f\211;\205\f\211\207" [lsp:markup-content-value] 3 "\n\n(fn DOC)"] "\n" lsp:completion-item-additional-text-edits\? lsp:set-completion-item-additional-text-edits\? #[257 "\300!\203\207\211C\207" [seqp] 3 "\n\n(fn IT)"] #[257 "\300!\203\207\211C\207" [seqp] 3 "\n\n(fn IT)"]] 16 "\n\n(fn METHOD RESULTS)"] mapcar #[257 "\300!\203 \301\302\"\207\207" [vectorp append nil] 4 "\n\n(fn IT)"] -filter identity nil] 9 (#$ . 40869)]) #@27 Start spinner indication. (defalias 'lsp--spinner-start #[0 "\3001 \301\302!0\207\303\207" [(error) spinner-start progress-bar-filled nil] 2 (#$ . 43103)]) #@44 Propertize STR as per TYPE. (fn STR TYPE) (defalias 'lsp--propertize #[514 "\301\302\303\"#\207" [lsp--message-type-face propertize face alist-get] 8 (#$ . 43266)]) #@64 Return the lsp workspaces associated with the current project. (defalias 'lsp-workspaces #[0 "\203C\207 \207" [lsp--cur-workspace lsp--buffer-workspaces] 1 (#$ . 43441)]) #@393 Wrap `completing-read' to provide transformation function. TRANSFORM-FN will be used to transform each of the items before displaying. PROMPT COLLECTION PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD will be proxied to `completing-read' without changes. (fn PROMPT COLLECTION TRANSFORM-FN &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD) (defalias 'lsp--completing-read #[2307 "\300\301\302 \" \"\303\n      &\304\"A\207" [mapcar make-closure #[257 "\300!B\207" [V0] 3 "\n\n(fn IT)"] completing-read assoc] 19 (#$ . 43623)]) #@29 (fn BUFFER-ID &rest BODY) (defalias 'lsp-with-current-buffer '(macro . #[385 "\300\301\302\303BBDC\304\302\305BB\306\301\307\310BBEE\311BBF\207" [if-let wcb plist-get (:with-current-buffer) with-lsp-workspaces (:workspaces) funcall lambda nil with-current-buffer] 11 (#$ . 44223)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put lsp-with-current-buffer lisp-indent-function 1 put edebug-form-spec t] 5) #@60 Make `lsp-*-while-no-input' throws `input' on interrupted. (defvar lsp--throw-on-input nil (#$ . 44660)) #@131 Catch TAG thrown in BODYFORM. The return value from TAG will be handled in HANDLERS by `pcase'. (fn TAG BODYFORM &rest HANDLERS) (defalias 'lsp--catch '(macro . #[642 "\300\301!\302\303EDC\304BBE\207" [make-symbol "re" let catch pcase] 9 (#$ . 44772)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put lsp--catch edebug-form-spec (form form &rest (pcase-PAT body)) function-put lisp-indent-function 2] 4) #@196 Wrap BODY in `while-no-input' and respecting `non-essential'. If `lsp--throw-on-input' is set, will throw if input is pending, else return value of `body' or nil if interrupted. (fn &rest BODY) (defalias 'lsp--while-no-input '(macro . #[128 "\300\301\302\303\304BDC\305BBBBB\207" [if non-essential let res while-no-input ((cond ((and lsp--throw-on-input (equal res t)) (throw 'input :interrupted)) ((booleanp res) nil) (t res)))] 7 (#$ . 45209)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put lsp--while-no-input edebug-form-spec t function-put lisp-indent-function 0] 4) #@70 compiler-macro for inlining `lsp--client-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-p (and (memq (type-of cl-x) cl-struct-lsp--client-tags) t)) nil] 9 (#$ . 45810)]) (put 'lsp--client-p 'compiler-macro 'lsp--client-p--cmacro) #@13 (fn CL-X) (defalias 'lsp--client-p #[257 "\301!>\205 \302\207" [cl-struct-lsp--client-tags type-of t] 3 (#$ . 46151)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp--client-p side-effect-free error-free put lsp--client cl-deftype-satisfies] 5) #@80 compiler-macro for inlining `lsp--client-language-id'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-language-id--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-language-id (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 1))) nil] 9 (#$ . 46430)]) (put 'lsp--client-language-id 'compiler-macro 'lsp--client-language-id--cmacro) #@68 Access slot "language-id" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-language-id #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 1] 5 (#$ . 46867)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-language-id side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--client-add-on?'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-add-on\?--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-add-on\? (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 2))) nil] 9 (#$ . 47226)]) (put 'lsp--client-add-on\? 'compiler-macro 'lsp--client-add-on\?--cmacro) #@64 Access slot "add-on?" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-add-on\? #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 2] 5 (#$ . 47647)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-add-on\? side-effect-free t] 4) #@83 compiler-macro for inlining `lsp--client-new-connection'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-new-connection--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-new-connection (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 3))) nil] 9 (#$ . 47996)]) (put 'lsp--client-new-connection 'compiler-macro 'lsp--client-new-connection--cmacro) #@71 Access slot "new-connection" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-new-connection #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 3] 5 (#$ . 48448)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-new-connection side-effect-free t] 4) #@83 compiler-macro for inlining `lsp--client-ignore-regexps'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-ignore-regexps--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-ignore-regexps (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 4))) nil] 9 (#$ . 48816)]) (put 'lsp--client-ignore-regexps 'compiler-macro 'lsp--client-ignore-regexps--cmacro) #@71 Access slot "ignore-regexps" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-ignore-regexps #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 4] 5 (#$ . 49268)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-ignore-regexps side-effect-free t] 4) #@84 compiler-macro for inlining `lsp--client-ignore-messages'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-ignore-messages--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-ignore-messages (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 5))) nil] 9 (#$ . 49636)]) (put 'lsp--client-ignore-messages 'compiler-macro 'lsp--client-ignore-messages--cmacro) #@72 Access slot "ignore-messages" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-ignore-messages #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 5] 5 (#$ . 50093)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-ignore-messages side-effect-free t] 4) #@90 compiler-macro for inlining `lsp--client-notification-handlers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-notification-handlers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-notification-handlers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 6))) nil] 9 (#$ . 50464)]) (put 'lsp--client-notification-handlers 'compiler-macro 'lsp--client-notification-handlers--cmacro) #@78 Access slot "notification-handlers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-notification-handlers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 6] 5 (#$ . 50951)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-notification-handlers side-effect-free t] 4) #@85 compiler-macro for inlining `lsp--client-request-handlers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-request-handlers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-request-handlers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 7))) nil] 9 (#$ . 51340)]) (put 'lsp--client-request-handlers 'compiler-macro 'lsp--client-request-handlers--cmacro) #@73 Access slot "request-handlers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-request-handlers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 7] 5 (#$ . 51802)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-request-handlers side-effect-free t] 4) #@86 compiler-macro for inlining `lsp--client-response-handlers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-response-handlers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-response-handlers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 8))) nil] 9 (#$ . 52176)]) (put 'lsp--client-response-handlers 'compiler-macro 'lsp--client-response-handlers--cmacro) #@74 Access slot "response-handlers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-response-handlers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 8] 5 (#$ . 52643)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-response-handlers side-effect-free t] 4) #@84 compiler-macro for inlining `lsp--client-prefix-function'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-prefix-function--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-prefix-function (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 9))) nil] 9 (#$ . 53020)]) (put 'lsp--client-prefix-function 'compiler-macro 'lsp--client-prefix-function--cmacro) #@72 Access slot "prefix-function" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-prefix-function #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 9] 5 (#$ . 53477)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-prefix-function side-effect-free t] 4) #@81 compiler-macro for inlining `lsp--client-uri-handlers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-uri-handlers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-uri-handlers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 10))) nil] 9 (#$ . 53848)]) (put 'lsp--client-uri-handlers 'compiler-macro 'lsp--client-uri-handlers--cmacro) #@69 Access slot "uri-handlers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-uri-handlers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 10] 5 (#$ . 54291)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-uri-handlers side-effect-free t] 4) #@84 compiler-macro for inlining `lsp--client-action-handlers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-action-handlers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-action-handlers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 11))) nil] 9 (#$ . 54654)]) (put 'lsp--client-action-handlers 'compiler-macro 'lsp--client-action-handlers--cmacro) #@72 Access slot "action-handlers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-action-handlers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 11] 5 (#$ . 55112)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-action-handlers side-effect-free t] 4) #@80 compiler-macro for inlining `lsp--client-major-modes'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-major-modes--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-major-modes (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 12))) nil] 9 (#$ . 55484)]) (put 'lsp--client-major-modes 'compiler-macro 'lsp--client-major-modes--cmacro) #@68 Access slot "major-modes" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-major-modes #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 12] 5 (#$ . 55922)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-major-modes side-effect-free t] 4) #@82 compiler-macro for inlining `lsp--client-activation-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-activation-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-activation-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 13))) nil] 9 (#$ . 56282)]) (put 'lsp--client-activation-fn 'compiler-macro 'lsp--client-activation-fn--cmacro) #@70 Access slot "activation-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-activation-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 13] 5 (#$ . 56730)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-activation-fn side-effect-free t] 4) #@77 compiler-macro for inlining `lsp--client-priority'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-priority--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-priority (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 14))) nil] 9 (#$ . 57096)]) (put 'lsp--client-priority 'compiler-macro 'lsp--client-priority--cmacro) #@65 Access slot "priority" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-priority #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 14] 5 (#$ . 57519)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-priority side-effect-free t] 4) #@78 compiler-macro for inlining `lsp--client-server-id'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-server-id--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-server-id (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 15))) nil] 9 (#$ . 57870)]) (put 'lsp--client-server-id 'compiler-macro 'lsp--client-server-id--cmacro) #@66 Access slot "server-id" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-server-id #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 15] 5 (#$ . 58298)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-server-id side-effect-free t] 4) #@79 compiler-macro for inlining `lsp--client-multi-root'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-multi-root--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-multi-root (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 16))) nil] 9 (#$ . 58652)]) (put 'lsp--client-multi-root 'compiler-macro 'lsp--client-multi-root--cmacro) #@67 Access slot "multi-root" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-multi-root #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 16] 5 (#$ . 59085)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-multi-root side-effect-free t] 4) #@91 compiler-macro for inlining `lsp--client-initialization-options'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-initialization-options--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-initialization-options (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 17))) nil] 9 (#$ . 59442)]) (put 'lsp--client-initialization-options 'compiler-macro 'lsp--client-initialization-options--cmacro) #@79 Access slot "initialization-options" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-initialization-options #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 17] 5 (#$ . 59935)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-initialization-options side-effect-free t] 4) #@100 compiler-macro for inlining `lsp--client-semantic-tokens-faces-overrides'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-semantic-tokens-faces-overrides--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-semantic-tokens-faces-overrides (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 18))) nil] 9 (#$ . 60329)]) (put 'lsp--client-semantic-tokens-faces-overrides 'compiler-macro 'lsp--client-semantic-tokens-faces-overrides--cmacro) #@88 Access slot "semantic-tokens-faces-overrides" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-semantic-tokens-faces-overrides #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 18] 5 (#$ . 60867)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-semantic-tokens-faces-overrides side-effect-free t] 4) #@88 compiler-macro for inlining `lsp--client-custom-capabilities'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-custom-capabilities--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-custom-capabilities (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 19))) nil] 9 (#$ . 61287)]) (put 'lsp--client-custom-capabilities 'compiler-macro 'lsp--client-custom-capabilities--cmacro) #@76 Access slot "custom-capabilities" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-custom-capabilities #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 19] 5 (#$ . 61765)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-custom-capabilities side-effect-free t] 4) #@87 compiler-macro for inlining `lsp--client-library-folders-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-library-folders-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-library-folders-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 20))) nil] 9 (#$ . 62149)]) (put 'lsp--client-library-folders-fn 'compiler-macro 'lsp--client-library-folders-fn--cmacro) #@75 Access slot "library-folders-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-library-folders-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 20] 5 (#$ . 62622)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-library-folders-fn side-effect-free t] 4) #@88 compiler-macro for inlining `lsp--client-before-file-open-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-before-file-open-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-before-file-open-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 21))) nil] 9 (#$ . 63003)]) (put 'lsp--client-before-file-open-fn 'compiler-macro 'lsp--client-before-file-open-fn--cmacro) #@76 Access slot "before-file-open-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-before-file-open-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 21] 5 (#$ . 63481)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-before-file-open-fn side-effect-free t] 4) #@83 compiler-macro for inlining `lsp--client-initialized-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-initialized-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-initialized-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 22))) nil] 9 (#$ . 63865)]) (put 'lsp--client-initialized-fn 'compiler-macro 'lsp--client-initialized-fn--cmacro) #@71 Access slot "initialized-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-initialized-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 22] 5 (#$ . 64318)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-initialized-fn side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--client-remote?'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-remote\?--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-remote\? (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 23))) nil] 9 (#$ . 64687)]) (put 'lsp--client-remote\? 'compiler-macro 'lsp--client-remote\?--cmacro) #@64 Access slot "remote?" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-remote\? #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 23] 5 (#$ . 65109)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-remote\? side-effect-free t] 4) #@92 compiler-macro for inlining `lsp--client-completion-in-comments?'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-completion-in-comments\?--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-completion-in-comments\? (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 24))) nil] 9 (#$ . 65459)]) (put 'lsp--client-completion-in-comments\? 'compiler-macro 'lsp--client-completion-in-comments\?--cmacro) #@80 Access slot "completion-in-comments?" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-completion-in-comments\? #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 24] 5 (#$ . 65961)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-completion-in-comments\? side-effect-free t] 4) #@81 compiler-macro for inlining `lsp--client-path->uri-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-path->uri-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-path->uri-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 25))) nil] 9 (#$ . 66359)]) (put 'lsp--client-path->uri-fn 'compiler-macro 'lsp--client-path->uri-fn--cmacro) #@69 Access slot "path->uri-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-path->uri-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 25] 5 (#$ . 66802)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-path->uri-fn side-effect-free t] 4) #@81 compiler-macro for inlining `lsp--client-uri->path-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-uri->path-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-uri->path-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 26))) nil] 9 (#$ . 67165)]) (put 'lsp--client-uri->path-fn 'compiler-macro 'lsp--client-uri->path-fn--cmacro) #@69 Access slot "uri->path-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-uri->path-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 26] 5 (#$ . 67608)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-uri->path-fn side-effect-free t] 4) #@83 compiler-macro for inlining `lsp--client-environment-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-environment-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-environment-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 27))) nil] 9 (#$ . 67971)]) (put 'lsp--client-environment-fn 'compiler-macro 'lsp--client-environment-fn--cmacro) #@71 Access slot "environment-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-environment-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 27] 5 (#$ . 68424)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-environment-fn side-effect-free t] 4) #@82 compiler-macro for inlining `lsp--client-after-open-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-after-open-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-after-open-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 28))) nil] 9 (#$ . 68793)]) (put 'lsp--client-after-open-fn 'compiler-macro 'lsp--client-after-open-fn--cmacro) #@70 Access slot "after-open-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-after-open-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 28] 5 (#$ . 69241)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-after-open-fn side-effect-free t] 4) #@91 compiler-macro for inlining `lsp--client-async-request-handlers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-async-request-handlers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-async-request-handlers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 29))) nil] 9 (#$ . 69607)]) (put 'lsp--client-async-request-handlers 'compiler-macro 'lsp--client-async-request-handlers--cmacro) #@79 Access slot "async-request-handlers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-async-request-handlers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 29] 5 (#$ . 70100)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-async-request-handlers side-effect-free t] 4) #@87 compiler-macro for inlining `lsp--client-download-server-fn'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-download-server-fn--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-download-server-fn (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 30))) nil] 9 (#$ . 70493)]) (put 'lsp--client-download-server-fn 'compiler-macro 'lsp--client-download-server-fn--cmacro) #@75 Access slot "download-server-fn" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-download-server-fn #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 30] 5 (#$ . 70966)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-download-server-fn side-effect-free t] 4) #@90 compiler-macro for inlining `lsp--client-download-in-progress?'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-download-in-progress\?--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-download-in-progress\? (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 31))) nil] 9 (#$ . 71347)]) (put 'lsp--client-download-in-progress\? 'compiler-macro 'lsp--client-download-in-progress\?--cmacro) #@78 Access slot "download-in-progress?" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-download-in-progress\? #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 31] 5 (#$ . 71839)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--client-download-in-progress\? side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--client-buffers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--client-buffers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--client-buffers (progn (or (lsp--client-p cl-x) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 32))) nil] 9 (#$ . 72231)]) (put 'lsp--client-buffers 'compiler-macro 'lsp--client-buffers--cmacro) #@64 Access slot "buffers" of `lsp--client' struct CL-X. (fn CL-X) (defalias 'lsp--client-buffers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 32] 5 (#$ . 72649)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp--client-buffers side-effect-free t defalias copy-lsp--client copy-sequence] 4) #@603 compiler-macro for inlining `make-lsp--client'. (fn CL-WHOLE &cl-quote &key LANGUAGE-ID ADD-ON\=\? NEW-CONNECTION IGNORE-REGEXPS IGNORE-MESSAGES NOTIFICATION-HANDLERS REQUEST-HANDLERS RESPONSE-HANDLERS PREFIX-FUNCTION URI-HANDLERS ACTION-HANDLERS MAJOR-MODES ACTIVATION-FN PRIORITY SERVER-ID MULTI-ROOT INITIALIZATION-OPTIONS SEMANTIC-TOKENS-FACES-OVERRIDES CUSTOM-CAPABILITIES LIBRARY-FOLDERS-FN BEFORE-FILE-OPEN-FN INITIALIZED-FN REMOTE\=\? COMPLETION-IN-COMMENTS\=\? PATH->URI-FN URI->PATH-FN ENVIRONMENT-FN AFTER-OPEN-FN ASYNC-REQUEST-HANDLERS DOWNLOAD-SERVER-FN DOWNLOAD-IN-PROGRESS\=\? BUFFERS) (defalias 'make-lsp--client--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"\206'\307A@\300\310\"\2062\311A@\300\312\"\206=\313A@\300 \314\"A@\300\n\315\"\206O\316A@\300 \317\"\206Z\320A@\300\f\321\"A@\300 \322\"A@\300\323\"\206s\324A@\300\325\"A@\300\326\"A@\300\327\"A@\300\330\"A@\300\331\"A@\300\332\"A@\300\333\"A@\300\334\"A@\300\335\"A@\300\336\"A@\300\337\"A@\300\340\"A@\300\341\"A@\300\342\"A@\300\343\"\206\340\344A@\300\345\"A@\300\346\"A@\300 \347\"A@ \211\203$\211@\350>\203\f\211AA\262\202\371\351\">A@\203\352\262\202\371\353\354@\"\210\202\371\210\355\356\357\352%\352%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%\207" [plist-member :language-id :add-on\? :new-connection :ignore-regexps :ignore-messages :notification-handlers (nil (make-hash-table :test 'equal)) :request-handlers (nil (make-hash-table :test 'equal)) :response-handlers (nil (make-hash-table :test 'eql)) :prefix-function :uri-handlers (nil (make-hash-table :test #'equal)) :action-handlers (nil (make-hash-table :test 'equal)) :major-modes :activation-fn :priority (nil 0) :server-id :multi-root :initialization-options :semantic-tokens-faces-overrides :custom-capabilities :library-folders-fn :before-file-open-fn :initialized-fn :remote\? :completion-in-comments\? :path->uri-fn :uri->path-fn :environment-fn :after-open-fn :async-request-handlers (nil (make-hash-table :test 'equal)) :download-server-fn :download-in-progress\? :buffers (:language-id :add-on\? :new-connection :ignore-regexps :ignore-messages :notification-handlers :request-handlers :response-handlers :prefix-function :uri-handlers :action-handlers :major-modes :activation-fn :priority :server-id :multi-root :initialization-options :semantic-tokens-faces-overrides :custom-capabilities :library-folders-fn :before-file-open-fn :initialized-fn :remote\? :completion-in-comments\? :path->uri-fn :uri->path-fn :environment-fn :after-open-fn :async-request-handlers :download-server-fn :download-in-progress\? :buffers :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:language-id :add-on? :new-connection :ignore-regexps :ignore-messages :notification-handlers :request-handlers :response-handlers :prefix-function :uri-handlers :action-handlers :major-modes :activation-fn :priority :server-id :multi-root :initialization-options :semantic-tokens-faces-overrides :custom-capabilities :library-folders-fn :before-file-open-fn :initialized-fn :remote? :completion-in-comments? :path->uri-fn :uri->path-fn :environment-fn :after-open-fn :async-request-handlers :download-server-fn :download-in-progress? :buffers)" cl--defsubst-expand (language-id add-on\? new-connection ignore-regexps ignore-messages notification-handlers request-handlers response-handlers prefix-function uri-handlers action-handlers major-modes activation-fn priority server-id multi-root initialization-options semantic-tokens-faces-overrides custom-capabilities library-folders-fn before-file-open-fn initialized-fn remote\? completion-in-comments\? path->uri-fn uri->path-fn environment-fn after-open-fn async-request-handlers download-server-fn download-in-progress\? buffers) (cl-block make-lsp--client (record 'lsp--client language-id add-on\? new-connection ignore-regexps ignore-messages notification-handlers request-handlers response-handlers prefix-function uri-handlers action-handlers major-modes activation-fn priority server-id multi-root initialization-options semantic-tokens-faces-overrides custom-capabilities library-folders-fn before-file-open-fn initialized-fn remote\? completion-in-comments\? path->uri-fn uri->path-fn environment-fn after-open-fn async-request-handlers download-server-fn download-in-progress\? buffers))] 72 (#$ . 73048)]) (put 'make-lsp--client 'compiler-macro 'make-lsp--client--cmacro) #@583 Constructor for objects of type `lsp--client'. (fn &key LANGUAGE-ID ADD-ON\=\? NEW-CONNECTION IGNORE-REGEXPS IGNORE-MESSAGES NOTIFICATION-HANDLERS REQUEST-HANDLERS RESPONSE-HANDLERS PREFIX-FUNCTION URI-HANDLERS ACTION-HANDLERS MAJOR-MODES ACTIVATION-FN PRIORITY SERVER-ID MULTI-ROOT INITIALIZATION-OPTIONS SEMANTIC-TOKENS-FACES-OVERRIDES CUSTOM-CAPABILITIES LIBRARY-FOLDERS-FN BEFORE-FILE-OPEN-FN INITIALIZED-FN REMOTE\=\? COMPLETION-IN-COMMENTS\=\? PATH->URI-FN URI->PATH-FN ENVIRONMENT-FN AFTER-OPEN-FN ASYNC-REQUEST-HANDLERS DOWNLOAD-SERVER-FN DOWNLOAD-IN-PROGRESS\=\? BUFFERS) (defalias 'make-lsp--client #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"\206,\307\310\311\312\"DA@\300\313\"\206<\307\310\311\312\"DA@\300\314\"\206L\307\310\311\315\"DA@\300 \316\"A@\300\n\317\"\206c\307\310\311\312\"DA@\300 \320\"\206s\307\310\311\312\"DA@\300\f\321\"A@\300 \322\"A@\300\323\"\206\214\324A@\300\325\"A@\300\326\"A@\300\327\"A@\300\330\"A@\300\331\"A@\300\332\"A@\300\333\"A@\300\334\"A@\300\335\"A@\300\336\"A@\300\337\"A@\300\340\"A@\300\341\"A@\300\342\"A@\300\343\"\206\376\307\310\311\312\"DA@\300\344\"A@\300\345\"A@\300 \346\"A@ \211\203B\211@\347>\203*\211AA\262\202\350\">A@\2039\307\262\202\351\352@\"\210\202\210\353\354!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&!\207" [plist-member :language-id :add-on\? :new-connection :ignore-regexps :ignore-messages :notification-handlers nil make-hash-table :test equal :request-handlers :response-handlers eql :prefix-function :uri-handlers :action-handlers :major-modes :activation-fn :priority (nil 0) :server-id :multi-root :initialization-options :semantic-tokens-faces-overrides :custom-capabilities :library-folders-fn :before-file-open-fn :initialized-fn :remote\? :completion-in-comments\? :path->uri-fn :uri->path-fn :environment-fn :after-open-fn :async-request-handlers :download-server-fn :download-in-progress\? :buffers (:language-id :add-on\? :new-connection :ignore-regexps :ignore-messages :notification-handlers :request-handlers :response-handlers :prefix-function :uri-handlers :action-handlers :major-modes :activation-fn :priority :server-id :multi-root :initialization-options :semantic-tokens-faces-overrides :custom-capabilities :library-folders-fn :before-file-open-fn :initialized-fn :remote\? :completion-in-comments\? :path->uri-fn :uri->path-fn :environment-fn :after-open-fn :async-request-handlers :download-server-fn :download-in-progress\? :buffers :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:language-id :add-on? :new-connection :ignore-regexps :ignore-messages :notification-handlers :request-handlers :response-handlers :prefix-function :uri-handlers :action-handlers :major-modes :activation-fn :priority :server-id :multi-root :initialization-options :semantic-tokens-faces-overrides :custom-capabilities :library-folders-fn :before-file-open-fn :initialized-fn :remote? :completion-in-comments? :path->uri-fn :uri->path-fn :environment-fn :after-open-fn :async-request-handlers :download-server-fn :download-in-progress? :buffers)" record lsp--client] 67 (#$ . 77579)]) (cl-struct-define 'lsp--client nil 'cl-structure-object 'record nil '((cl-tag-slot) (language-id nil) (add-on\? nil) (new-connection nil) (ignore-regexps nil) (ignore-messages nil) (notification-handlers (make-hash-table :test 'equal)) (request-handlers (make-hash-table :test 'equal)) (response-handlers (make-hash-table :test 'eql)) (prefix-function nil) (uri-handlers (make-hash-table :test #'equal)) (action-handlers (make-hash-table :test 'equal)) (major-modes) (activation-fn) (priority 0) (server-id) (multi-root) (initialization-options) (semantic-tokens-faces-overrides) (custom-capabilities) (library-folders-fn) (before-file-open-fn) (initialized-fn) (remote\? nil) (completion-in-comments\? nil) (path->uri-fn nil) (uri->path-fn nil) (environment-fn) (after-open-fn nil) (async-request-handlers (make-hash-table :test 'equal)) (download-server-fn) (download-in-progress\?) (buffers)) 'cl-struct-lsp--client-tags 'lsp--client t) #@597 Finds an executable by invoking a search command. FIND-COMMAND is the executable finder that searches for the actual language server executable. ARGS is a list of arguments to give to FIND-COMMAND to find the language server. Returns the output of FIND-COMMAND if it exits successfully, nil otherwise. Typical uses include finding an executable by invoking 'find' in a project, finding LLVM commands on macOS with 'xcrun', or looking up project-specific language servers for projects written in the various dynamic languages, e.g. 'nvm', 'pyenv' and 'rbenv' etc. (fn FIND-COMMAND &rest ARGS) (defalias 'lsp-clients-executable-find #[385 "\300!\211\205*\301\302\303\"r\211q\210\304\305\"\216\306\307\310\303\310&\311U\205'\312ed\"*\262\211\2051\313!\207" [executable-find generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process nil 0 buffer-substring-no-properties string-trim] 11 (#$ . 81751)]) (defvar lsp--already-widened nil) #@19 (fn &rest FORM) (defalias 'lsp-save-restriction-and-excursion '(macro . #[128 "\300\301\302B\303\304\305\306\302BEEF\207" [if lsp--already-widened save-excursion -let [lsp--already-widened t] save-restriction (widen)] 10 (#$ . 82776)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put lsp-save-restriction-and-excursion lisp-indent-function 0 put edebug-form-spec t] 5) #@77 Return the point for character CHARACTER on line LINE. (fn LINE CHARACTER) (defalias 'lsp--line-character-to-point #[514 "\302\303#\206O\304 \203-\212eb\210y\210\305 `ZV\203#\211\202'u\210`\262)\202N\304\214~\210\212eb\210y\210\305 `ZV\203G\211\202Ku\210`\262+)\207" [inhibit-field-text-motion lsp--already-widened lsp-virtual-buffer-call :line/character->point t line-end-position] 6 (#$ . 83175)]) #@62 Convert `Position' object in PARAMS to a point. (fn INPUT0) (defalias 'lsp--position-to-point #[257 "\300\301\"\300\302\"\303\"\207" [gethash "line" "character" lsp--line-character-to-point] 6 (#$ . 83603)]) #@15 (fn INPUT0) (defalias 'lsp--range-to-region #[257 "\300\301\302\"!\300\301\303\"!B\207" [lsp--position-to-point lsp-get :start :end] 6 (#$ . 83822)]) #@15 (fn INPUT0) (defalias 'lsp--range-text #[257 "\300\301\302\"!\300\301\303\"!{\207" [lsp--position-to-point lsp-get :start :end] 6 (#$ . 83984)]) #@15 (fn INPUT0) (defalias 'lsp--find-wrapping-range #[257 "\300\301\"\300\302\"\303\304\305\"!\303\304\306\"!\307 \203=\310\311 #\203=\310\312 #\203=\311 U\2039\211\312 U\204=B\207\310`#\203N\307 \204NB\207\205U\313!\207" [gethash "parent" "range" lsp--position-to-point lsp-get :start :end region-active-p <= region-beginning region-end lsp--find-wrapping-range] 9 (#$ . 84141)]) (defalias 'lsp--get-selection-range #[0 "\211\205 \211A\262\242\211\205\211\205\211\301 U\205\262\262\262\206:\302\303\304\305 \306\307\310 !F\"@\211\301 B\211\262\207" [lsp--document-selection-range-cache buffer-modified-tick lsp-request "textDocument/selectionRange" :textDocument lsp--text-document-identifier :positions vector lsp--cur-position] 7]) #@19 Extend selection. (defalias 'lsp-extend-selection #[0 "\300\301!\204\f\302\303\304C\"\210\305\306 !\211\2053\211A\262\242\211\2051\211\205/b\210\307`!\210\211b\210\310 \262\262\207" [lsp--capability :selectionRangeProvider signal lsp-capability-not-supported "selectionRangeProvider" lsp--find-wrapping-range lsp--get-selection-range set-mark exchange-point-and-mark] 5 (#$ . 84923) nil]) #@197 Display a warning message made from (`format-message' MESSAGE ARGS...). This is equivalent to `display-warning', using `lsp-mode' as the type and `:warning' as the level. (fn MESSAGE &rest ARGS) (defalias 'lsp-warn #[385 "\300\301\302\303#\"\207" [display-warning lsp-mode apply format-message] 8 (#$ . 85329)]) #@67 Get uri handler for SCHEME in the current workspace. (fn SCHEME) (defalias 'lsp--get-uri-handler #[257 "\302\303 \206\n\304\305 !\306\302\211\211\203\205\211A\262\242\262\262\211\262\203\205\307\310\211!>\2048\311\312\313D\"\210\314H! >\204\\\311\312\315\310!>\204U\311\312\313 D\"\210\314HD\"\210\310!>\204l\311\312\313D\"\210\314H\316H\"\211\262\204\205\262\262T\262\202\266\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags nil lsp-workspaces lsp--session-workspaces lsp-session 0 gethash type-of signal wrong-type-argument lsp--workspace 5 lsp--client 10] 16 (#$ . 85650)]) #@140 On windows, downcases path because the windows file system is case-insensitive. On other systems, returns path without change. (fn PATH) (defalias 'lsp--fix-path-casing #[257 "\301=\203 \211\227\207\207" [system-type windows-nt] 3 (#$ . 86293)]) #@39 Convert URI to a file path. (fn URI) (defalias 'lsp--uri-to-path #[257 "\300\301\302 \"@\211\203\211!\207\303!\207" [-keep #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--workspace-client (lsp--client-uri->path-fn) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] lsp-workspaces lsp--uri-to-path-1] 4 (#$ . 86549)]) #@18 (fn FILE-NAME) (defalias 'lsp-remap-path-if-needed #[257 "\301\"\211\203\302\303\"\211\203\304\305\306\"\307#\207\207\207" [lsp--virtual-buffer-mappings gethash plist-get :buffer propertize buffer-local-value buffer-file-name lsp-virtual-buffer] 7 (#$ . 86922)]) #@39 Convert URI to a file path. (fn URI) (defalias 'lsp--uri-to-path-1 #[257 "\303\304!!\305!>\204\306\307\310D\"\210\211\311H\312\305!>\204'\306\307\310D\"\210\313H \206/\314\"\203M\315\230\204M\316!\211\203G\211!\202H\262\202c\n\317=\203b\211\320\234\321=\203b\211\311\322O\206c\211\323\324\325\326 \"P!\207" [cl-struct-url-tags locale-coding-system system-type url-generic-parse-url url-unhex-string type-of signal wrong-type-argument url 1 decode-coding-string 6 utf-8 "file" lsp--get-uri-handler windows-nt 0 47 nil lsp-remap-path-if-needed -some lsp--workspace-host-root lsp-workspaces] 9 (#$ . 87204)]) #@35 Return URI of the current buffer. (defalias 'lsp--buffer-uri #[0 "\206\302 \303\"\206\304\305 \206\305\306 !!\207" [lsp-buffer-uri lsp--virtual-buffer plist-get :buffer-uri lsp--path-to-uri buffer-file-name buffer-base-buffer] 3 (#$ . 87844)]) #@102 Implemented only to make `company-lsp' happy. DELETE when `lsp-mode.el' is deleted. (fn &rest ARGS) (defalias 'lsp-register-client-capabilities #[128 "\300\207" ["Implemented only to make `company-lsp' happy.\nDELETE when `lsp-mode.el' is deleted."] 2 (#$ . 88102)]) #@118 `url-unreserved-chars' with additional delim ?/. This set of allowed chars is enough for hexifying local file paths. (defconst lsp--url-path-allowed-chars (byte-code "\301\302\303\"!\207" [url-unreserved-chars url--allowed-chars append (47)] 4) (#$ . 88377)) #@13 (fn PATH) (defalias 'lsp--path-to-uri-1 #[257 "\302!\303\304\305#\206\211\306 \"\262\262\262P\207" [lsp--uri-file-prefix lsp--url-path-allowed-chars expand-file-name file-remote-p localname t url-hexify-string] 8 (#$ . 88643)]) #@35 Convert PATH to a uri. (fn PATH) (defalias 'lsp--path-to-uri #[257 "\300\301\302 \"@\211\203\211!\207\303!\207" [-keep #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--workspace-client (lsp--client-path->uri-fn) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] lsp-workspaces lsp--path-to-uri-1] 4 (#$ . 88889)]) #@86 Return the first regex, if any, within REGEX-LIST matching STR. (fn REGEX-LIST STR) (defalias 'lsp--string-match-any #[514 "\300\301\300\211\211\2038\211A\262\242\262\262\211\262\2038\302\"\203+\300\262\2038\262\262T\262\202\266\207" [nil 0 string-match] 11 (#$ . 89258)]) #@68 compiler-macro for inlining `lsp-watch-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-watch-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-watch-p (and (memq (type-of cl-x) cl-struct-lsp-watch-tags) t)) nil] 9 (#$ . 89565)]) (put 'lsp-watch-p 'compiler-macro 'lsp-watch-p--cmacro) #@13 (fn CL-X) (defalias 'lsp-watch-p #[257 "\301!>\205 \302\207" [cl-struct-lsp-watch-tags type-of t] 3 (#$ . 89894)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp-watch-p side-effect-free error-free put lsp-watch cl-deftype-satisfies] 5) #@78 compiler-macro for inlining `lsp-watch-descriptors'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-watch-descriptors--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-watch-descriptors (progn (or (lsp-watch-p cl-x) (signal 'wrong-type-argument (list 'lsp-watch cl-x))) (aref cl-x 1))) nil] 9 (#$ . 90165)]) (put 'lsp-watch-descriptors 'compiler-macro 'lsp-watch-descriptors--cmacro) #@66 Access slot "descriptors" of `lsp-watch' struct CL-X. (fn CL-X) (defalias 'lsp-watch-descriptors #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-watch-tags type-of signal wrong-type-argument lsp-watch 1] 5 (#$ . 90588)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp-watch-descriptors side-effect-free t] 4) #@81 compiler-macro for inlining `lsp-watch-root-directory'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-watch-root-directory--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-watch-root-directory (progn (or (lsp-watch-p cl-x) (signal 'wrong-type-argument (list 'lsp-watch cl-x))) (aref cl-x 2))) nil] 9 (#$ . 90937)]) (put 'lsp-watch-root-directory 'compiler-macro 'lsp-watch-root-directory--cmacro) #@69 Access slot "root-directory" of `lsp-watch' struct CL-X. (fn CL-X) (defalias 'lsp-watch-root-directory #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-watch-tags type-of signal wrong-type-argument lsp-watch 2] 5 (#$ . 91375)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp-watch-root-directory side-effect-free t defalias copy-lsp-watch copy-sequence] 4) #@104 compiler-macro for inlining `make-lsp-watch'. (fn CL-WHOLE &cl-quote &key DESCRIPTORS ROOT-DIRECTORY) (defalias 'make-lsp-watch--cmacro #[385 "\300\301\"\206\302A@\300\303\"A@\211\203;\211@\304>\203$\211AA\262\202\305>A@\2032\306\262\202\307\310@\"\210\202\210\311\312\313\306\306&\207" [plist-member :descriptors (nil (make-hash-table :test 'equal)) :root-directory (:descriptors :root-directory :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:descriptors :root-directory)" cl--defsubst-expand (descriptors root-directory) (cl-block make-lsp-watch (record 'lsp-watch descriptors root-directory))] 12 (#$ . 91782)]) (put 'make-lsp-watch 'compiler-macro 'make-lsp-watch--cmacro) #@84 Constructor for objects of type `lsp-watch'. (fn &key DESCRIPTORS ROOT-DIRECTORY) (defalias 'make-lsp-watch #[128 "\300\301\"\206 \302\303\304\305\"DA@\300\306\"A@\211\203@\211@\307>\203)\211AA\262\202\310>A@\2037\302\262\202\311\312@\"\210\202\210\313\314#\207" [plist-member :descriptors nil make-hash-table :test equal :root-directory (:descriptors :root-directory :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:descriptors :root-directory)" record lsp-watch] 7 (#$ . 92525)]) (cl-struct-define 'lsp-watch nil 'cl-structure-object 'record nil '((cl-tag-slot) (descriptors (make-hash-table :test 'equal)) (root-directory)) 'cl-struct-lsp-watch-tags 'lsp-watch t) #@63 (fn EVENT CALLBACK WATCH IGNORED-FILES IGNORED-DIRECTORIES) (defalias 'lsp--folder-watch-callback #[1285 "AA@A@\300!\2035\211\301=\2035\302\"\2045\303\304! %\210\305\306\307\"\310\311\312#\"\207\211\313>\203M\300!\204M\302\"\204M!\207\211\314=\205|\300!?\205|\302\"?\205|@\315 AA@E!\210@\301 AAA@E!\207" [file-directory-p created lsp--string-match-any lsp-watch-root-folder file-truename seq-do make-closure #[257 "\301!?\205 \300\302\303E!\207" [V0 file-directory-p nil created] 5 "\n\n(fn F)"] directory-files-recursively ".*" t (created deleted changed) renamed deleted] 13 (#$ . 93246)]) #@278 Ask the user if they want to watch NUMBER-OF-DIRECTORIES from a repository DIR. This is useful when there is a lot of files in a repository, as that may slow Emacs down. Returns t if the user wants to watch the entire repository, nil otherwise. (fn NUMBER-OF-DIRECTORIES DIR) (defalias 'lsp--ask-about-watching-big-repo #[514 "\300\301\302$!\303\304!\210\207" [yes-or-no-p format "Watching all the files in %s would require adding watches to %s directories, so watching the repo may slow Emacs down.\nDo you want to watch all files in %s? " lsp--info "You can configure this warning with the `lsp-enable-file-watchers' and `lsp-file-watch-threshold' variables"] 8 (#$ . 93892)]) #@204 Figure out whether PATH (inside of DIR) is meant to have a file watcher set. IGNORED-DIRECTORIES is a list of regexes to filter out directories we don't want to watch. (fn PATH DIR IGNORED-DIRECTORIES) (defalias 'lsp--path-is-watchable-directory #[771 "\300\"\301!\205\302\232?\205\303\232?\205\304\"?\207" [f-join f-dir-p "." ".." lsp--string-match-any] 7 (#$ . 94582)]) #@170 Traverse DIR recursively and return a list of paths that should have watchers set on them. IGNORED-DIRECTORIES will be used for exclusions (fn DIR IGNORED-DIRECTORIES) (defalias 'lsp--all-watchable-directories #[514 "\300!\203\f\301!\202 \302\303C\304\305\306#\307\305\310  #\311!\"\"#\207" [f-symlink\? file-truename apply nconc -map make-closure #[257 "\302\303\301\"\300\"\207" [V0 V1 lsp--all-watchable-directories f-join] 5 "\n\n(fn PATH)"] -filter #[257 "\302\301\300#\207" [V0 V1 lsp--path-is-watchable-directory] 5 "\n\n(fn PATH)"] directory-files] 13 (#$ . 94975)]) #@514 Create recursive file notification watch in DIR. CALLBACK will be called when there are changes in any of the monitored files. WATCHES is a hash table directory->file notification handle which contains all of the watch that already have been created. Watches will not be created for any directory that matches any regex in IGNORED-DIRECTORIES. Watches will not be created for any file that matches any regex in IGNORED-FILES. (fn DIR CALLBACK IGNORED-FILES IGNORED-DIRECTORIES &optional WATCH WARN-BIG-REPO\=\?) (defalias 'lsp-watch-root-folder #[1540 "\302!\203\303!\202\206\304\305\"\306\"\307\310G\311\312\"#\210\203J\203J\211G\211W\206E\3131B\314\"0\202E\315\262\262\203\242\211\211\203\241\211@\3161\222\3171\206\320\321\322\323\324 %#\325! >\204{\326\327\330 D\"\210\331H#00\210\202\2320\307\332\333!\"\266\202\232\307\332\333!\"\266A\266\202\202K\210\207" [lsp-file-watch-threshold cl-struct-lsp-watch-tags f-symlink\? file-truename make-lsp-watch :root-directory lsp--all-watchable-directories lsp-log "Creating watchers for following %s folders:\n %s" s-join "\n " 'quit lsp--ask-about-watching-big-repo nil (file-missing) (error) puthash file-notify-add-watch (change) make-closure #[257 "\304\300\303\301\302%\207" [V0 V1 V2 V3 lsp--folder-watch-callback] 7 "\n\n(fn EVENT)"] type-of signal wrong-type-argument lsp-watch 1 "Failed to create a watch for %s: message" error-message-string] 22 (#$ . 95574)]) #@27 Delete WATCH. (fn WATCH) (defalias 'lsp-kill-watch #[257 "\301\302!>\204\303\304\305D\"\210\306H\307C\310\311\312\"\"\210\211\242\237\266\202\313\"\210\307\314\302!>\2046\303\304\305D\"\210\306H!\210\207" [cl-struct-lsp-watch-tags -each type-of signal wrong-type-argument lsp-watch 1 nil maphash make-closure #[514 "\300\300\242B\240\207" [V0] 5 "\n\n(fn --CL-VAR-- V)"] file-notify-rm-watch clrhash] 8 (#$ . 97059)]) #@40 Convert VAL to JSON boolean. (fn VAL) (defalias 'lsp-json-bool #[257 "\211\203\300\207\301\207" [t :json-false] 2 (#$ . 97498)]) #@81 Helper macro for invoking BODY in WORKSPACE context. (fn WORKSPACE &rest BODY) (defalias 'with-lsp-workspace '(macro . #[385 "\300\301DCBB\207" [let lsp--cur-workspace] 5 (#$ . 97636)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-lsp-workspace edebug-form-spec (form body) function-put lisp-indent-function 1] 4) #@89 Helper macro for invoking BODY against multiple WORKSPACES. (fn WORKSPACES &rest BODY) (defalias 'with-lsp-workspaces '(macro . #[385 "\300\301DCBB\207" [let lsp--buffer-workspaces] 5 (#$ . 97985)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-lsp-workspaces edebug-form-spec (form body) function-put lisp-indent-function 1] 4) #@26 List of downstream deps. (defconst lsp-downstream-deps '(ccls consult-lsp dap-mode helm-lsp lsp-dart lsp-docker lsp-focus lsp-grammarly lsp-haskell lsp-ivy lsp-java lsp-javacomp lsp-jedi lsp-julia lsp-latex lsp-ltex lsp-metals lsp-mssql lsp-origami lsp-p4 lsp-pascal lsp-pyre lsp-pyright lsp-python-ms lsp-rescript lsp-sonarlint lsp-sourcekit lsp-tailwindcss lsp-treemacs lsp-ui swift-helpful lsp-actionscript lsp-ada lsp-angular lsp-bash lsp-beancount lsp-clangd lsp-clojure lsp-cmake lsp-crystal lsp-csharp lsp-css lsp-d lsp-dhall lsp-dockerfile lsp-elixir lsp-elm lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-groovy lsp-hack lsp-haxe lsp-html lsp-javascript lsp-json lsp-kotlin lsp-lua lsp-markdown lsp-nim lsp-nix lsp-ocaml lsp-perl lsp-php lsp-prolog lsp-purescript lsp-pwsh lsp-pyls lsp-pylsp lsp-racket lsp-r lsp-rf lsp-rust lsp-solargraph lsp-sorbet lsp-sqls lsp-steep lsp-svelte lsp-terraform lsp-tex lsp-v lsp-vala lsp-verilog lsp-vetur lsp-vhdl lsp-vimscript lsp-xml lsp-yaml lsp-zig) (#$ . 98348)) #@16 (fn PACKAGE) (defalias 'lsp-consistency-check '(macro . #[257 "\300\301\302!\303P!\304BB\207" [defconst intern symbol-name "-plist-value-when-compiled" ((eval-when-compile lsp-use-plists))] 5 (#$ . 99388)])) #@44 Load vscode workspace from FILE (fn FILE) (defalias 'lsp-load-vscode-workspace #[257 "\301\302\303 \304!>\204\305\306\303D\"\210\211\307H\262\"\210\310!\311\312\313\"\314\315\316!\"\"\207" [cl-struct-lsp-session-tags mapc lsp-workspace-folders-remove lsp-session type-of signal wrong-type-argument 1 f-dirname -map make-closure #[257 "\301\236A\302\303\300\"!\207" [V0 path lsp-workspace-folders-add expand-file-name] 6 "\n\n(fn INPUT0)"] alist-get folders json-read-file] 8 (#$ . 99605) "fSelect file to import: "]) #@42 Save vscode workspace to FILE (fn FILE) (defalias 'lsp-save-vscode-workspace #[257 "\302\303\304\305\306\307\310 \311! >\204\312\313\310D\"\210\211\314H\262\"BC!\315#)\207" [json-encoding-pretty-print cl-struct-lsp-session-tags t f-write-text json-encode folders mapcar #[257 "\300BC\207" [path] 3 "\n\n(fn IT)"] lsp-session type-of signal wrong-type-argument 1 utf-8] 11 (#$ . 100141) "FSelect file to save to: "]) #@67 Execute BODY for each of the current workspaces. (fn &rest BODY) (defalias 'lsp-foreach-workspace '(macro . #[128 "\300\301\302BB\303BB\207" [--map with-lsp-workspace it ((lsp-workspaces))] 5 (#$ . 100572)])) (put 'lsp-foreach-workspace 'edebug-form-spec '(form body)) #@92 Helper macro for invoking BODY in WORKSPACE context if present. (fn WORKSPACE &rest BODY) (defalias 'when-lsp-workspace '(macro . #[385 "\300\301DCBB\207" [when-let lsp--cur-workspace] 5 (#$ . 100849)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put when-lsp-workspace edebug-form-spec (form body) function-put lisp-indent-function 1] 4) #@96 Send the server's messages to log. PARAMS - the data sent from _WORKSPACE. (fn INPUT0 INPUT1) (defalias 'lsp--window-show-message #[514 "\300\301\302\"\301\303\"\211\304\267\202\305\202\306\202\307\310\"\207" [nil gethash "message" "type" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (1 15 2 19)) lsp--error lsp--warn lsp--info "%s"] 8 (#$ . 101215)]) #@95 Send the server's messages to log. PARAMS - the data sent from WORKSPACE. (fn INPUT0 INPUT1) (defalias 'lsp--window-log-message #[514 "\302\303\"\302\304\"\305\306!>\204\307\310\311D\"\210\312H\211\203D\313\314\"\306! >\2044\307\310\315D\"\210\312H\305\316\317$?\266\203\203N\320\321\322\"\"\210\210\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags gethash "message" "type" nil type-of signal wrong-type-argument lsp--workspace 5 -rpartial string-match-p lsp--client apply cl-some lsp-log "%s" lsp--propertize] 15 (#$ . 101623)]) #@102 Display a message request to the user and send the user's selection back to the server. (fn INPUT0) (defalias 'lsp--window-log-message-request #[257 "\300\301\"\300\302\"\300\303\"\304\"\305\306\"\211\203$\307\310P\311\312\"\313\314$\207\315!\207" [gethash "message" "type" "actions" lsp--propertize seq-map lsp:message-action-item-title completing-read " " seq-into list nil t lsp-log] 11 (#$ . 102199)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\300\314\302\303\315DD\316\306\307\310\317\312\320& \207" [custom-declare-variable lsp-progress-prefix funcall function #[0 "\300\207" [#1=" ⌛ "] 1 #1#] "Progress prefix." :group lsp-mode :type string :package-version (lsp-mode . "7.1.0") lsp-progress-function #[0 "\300\207" [lsp-on-progress-modeline] 1] "Function for handling the progress notifications." (choice (const :tag "Use modeline" lsp-on-progress-modeline) (const :tag "Legacy(uses either `progress-reporter' or `spinner' based on `lsp-progress-via-spinner')" lsp-on-progress-legacy) (const ignore :tag "Ignore") (function :tag "Other function")) (lsp-mode . "7.1.0")] 10) #@64 Returns the status of the progress for the current workspaces. (defalias 'lsp--progress-status #[0 "\301\302\303\304\305 \"\"\211\306!?\205P\207" [lsp-progress-prefix s-join "|" -keep #[257 "\301!>\204\302\303\304D\"\210\211\305H\306!\307U?\205\"\310\311\312!\313#\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 21 hash-table-count 0 mapconcat #[257 "\300\301\"\300\302\"\300\303\"\211\203\304\305\"\202\306\206P\207" [gethash "message" "title" "percentage" format "%s%%%% " ""] 7 "\n\n(fn INPUT0)"] ht-values "|"] 6 "\n\n(fn WORKSPACE)"] lsp-workspaces s-blank\?] 5 (#$ . 103327)]) #@117 PARAMS contains the progress data. WORKSPACE is the workspace that contains the progress token. (fn INPUT0 INPUT1) (defalias 'lsp-on-progress-modeline #[514 "\300\301\"\300\302\"\300\303\"\304\305\306\"\210\211\307\267\2021\310#\210\2021\310#\210\2021\311\"\210\312 \207" [gethash "token" "value" "kind" add-to-list global-mode-string (t (:eval (lsp--progress-status))) #s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("begin" 24 "report" 34 "end" 44)) lsp-workspace-set-work-done-token lsp-workspace-rem-work-done-token force-mode-line-update] 10 (#$ . 103981)]) #@117 PARAMS contains the progress data. WORKSPACE is the workspace that contains the progress token. (fn INPUT0 INPUT1) (defalias 'lsp-on-progress-legacy #[514 "\303\304\"\303\305\"\303\306\"\211\307\267\202\253\303\310\"\303\311\"\203M\312\313 \"\314\315\316\"\"\317!\320\315\321\"\322 !\n>\204C\323\324\325 D\"\210\n\326H\"\266\203\202_\211\203Z\327\330\331$\202_\327\332\211#\333 #\207\334\"\211\205\214?\205\214\211\335!\332\247\203\205@Y\205\212\336#\266\203\207\334\"\211\205\252\203\241\337\340\"\210\202\245\341!\210\342\"\207\332\207" [lsp-progress-via-spinner spinner-types cl-struct-lsp--workspace-tags gethash "token" "value" "kind" #s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("begin" 19 "report" 103 "end" 141)) "title" "percentage" alist-get progress-bar seq-map make-closure #[257 "\301\302\300#\207" [V0 propertize help-echo] 5 "\n\n(fn STRING)"] vconcat mapcar #[257 "\302\303\"\211\203\302\304\"\211\305\306\300\"!\210)\210\207rq\210\307\300!\210)\210\207" [V0 lsp--buffer-workspaces plist-get :with-current-buffer :workspaces make-closure #[0 "\301\300!\207" [V0 spinner-start] 2] spinner-start] 6 "\n\n(fn BUFFER)"] type-of signal wrong-type-argument lsp--workspace 9 make-progress-reporter 0 100 nil lsp-workspace-set-work-done-token lsp-workspace-get-work-done-token lsp:work-done-progress-report-percentage\? progress-reporter-do-update mapc #[257 "\301!\205#\302\303\"\211\203\302\304\"\211\305!)\202!rq\210\306 )\262\207" [lsp--buffer-workspaces lsp-buffer-live-p plist-get :with-current-buffer :workspaces #[0 "\300 \207" [spinner-stop] 1] spinner-stop] 5 "\n\n(fn BUFFER)"] progress-reporter-done lsp-workspace-rem-work-done-token] 17 (#$ . 104610)]) #@328 A a function which will be called with `&PublishDiagnosticsParams' and `workspace' which can be used to filter out the diagnostics. The function should return `&PublishDiagnosticsParams'. Common usecase are: 1. Filter the diagnostics for a particular language server. 2. Filter out the diagnostics under specific level. (defvar lsp-diagnostic-filter nil (#$ . 106405)) (defvar lsp-diagnostic-stats (make-hash-table :test 'equal)) #@83 Return the diagnostics from all workspaces. (fn &optional CURRENT-WORKSPACE\=\?) (defalias 'lsp-diagnostics #[256 "\301\203\n\302 \202\303\304 !\211\204\266\202N\211:\203F\211\242\243\211\204>\305!>\2044\306\307\310D\"\210\211\311H\262\266\204\202K!\266\204\202K!\266\202\206U\312\313\314\"\211\262\207" [cl-struct-lsp--workspace-tags #[257 "\300\301\302\"\303\304\305\"\"\210\207" [make-hash-table :test equal mapc make-closure #[257 "\302\303\304\300\"\305! >\204\306\307\310D\"\210\311H\"\207" [V0 cl-struct-lsp--workspace-tags maphash make-closure #[514 "\301\302\303\300\"\"\300#\207" [V0 puthash append gethash] 8 "\n\n(fn FILE-NAME DIAGNOSTICS)"] type-of signal wrong-type-argument lsp--workspace 20] 7 "\n\n(fn WORKSPACE)"]] 6 "\n\n(fn WORKSPACES)"] lsp-workspaces lsp--session-workspaces lsp-session type-of signal wrong-type-argument lsp--workspace 20 make-hash-table :test equal] 10 (#$ . 106848)]) #@117 Get diagnostics statistics for PATH. The result format is vector [_ errors warnings infos hints] or nil. (fn PATH) (defalias 'lsp-diagnostics-stats-for #[257 "\301\302!\"\207" [lsp-diagnostic-stats gethash lsp--fix-path-casing] 4 (#$ . 107801)]) #@23 (fn PATH NEW-STATS) (defalias 'lsp-diagnostics--update-path #[514 "\301!\302\303!!\304\"\211\2031\305\306\211W\2050\211H\nH\\I\266\211T\262\202\207\307#\207" [lsp-diagnostic-stats copy-sequence lsp--fix-path-casing directory-file-name gethash 5 0 puthash] 15 (#$ . 108056)]) #@22 (fn INPUT0 INPUT1) (defalias 'lsp--on-diagnostics-update-stats #[514 "\301\302\"\301\303\"\304\305!!\306\307\310\"\311\312\313\"\"\210\301\314!>\204-\315\316\317 D\"\210\320H\"\211\203>\311\312\321\"\"\210\210\322\"\210\323\324!!\211\262\230?\205Z\322\"\210\202D\207" [cl-struct-lsp--workspace-tags gethash "uri" "diagnostics" lsp--fix-path-casing lsp--uri-to-path make-vector 5 0 mapc make-closure #[257 "\301\302\"\300\206\n\303HTI\207" [V0 gethash "severity" 1] 8 "\n\n(fn INPUT0)"] type-of signal wrong-type-argument lsp--workspace 20 #[257 "\301\302\"\300\206\n\303HSI\207" [V0 gethash "severity" 1] 8 "\n\n(fn INPUT0)"] lsp-diagnostics--update-path file-name-directory directory-file-name] 13 (#$ . 108362)]) #@253 Callback for textDocument/publishDiagnostics. interface PublishDiagnosticsParams { uri: string; diagnostics: Diagnostic[]; } PARAMS contains the diagnostics data. WORKSPACE is the workspace that contains the diagnostics. (fn WORKSPACE PARAMS) (defalias 'lsp--on-diagnostics #[514 "\203\n\"\262\303\"\210\304\305\"\304\306\"\307\310\311\"\211\262\312\313!!\314!\n>\2044\315\316\317D\"\210\320H\321!\203E\322\"\210\202N\323\324\325\"#\210\326\327!)\207" [lsp-diagnostic-filter lsp--virtual-buffer-mappings cl-struct-lsp--workspace-tags lsp--on-diagnostics-update-stats gethash "uri" "diagnostics" make-hash-table :test equal lsp--fix-path-casing lsp--uri-to-path type-of signal wrong-type-argument lsp--workspace 20 seq-empty-p remhash puthash append nil run-hooks lsp-diagnostics-updated-hook] 11 (#$ . 109126)]) #@18 (fn WORKSPACE) (defalias 'lsp-diagnostics--workspace-cleanup #[257 "\301\302\303\"\304!>\204\305\306\307D\"\210\310H\"\210\311\304!>\204)\305\306\307D\"\210\310H!\207" [cl-struct-lsp--workspace-tags maphash make-closure #[514 "\301\300\302\303\304!\305\306$\"\207" [V0 lsp--on-diagnostics-update-stats lsp-make-publish-diagnostics-params :uri lsp--path-to-uri :diagnostics []] 9 "\n\n(fn KEY _)"] type-of signal wrong-type-argument lsp--workspace 20 clrhash] 7 (#$ . 109979)]) #@77 compiler-macro for inlining `lsp--folding-range-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--folding-range-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--folding-range-p (and (memq (type-of cl-x) cl-struct-lsp--folding-range-tags) t)) nil] 9 (#$ . 110478)]) (put 'lsp--folding-range-p 'compiler-macro 'lsp--folding-range-p--cmacro) #@13 (fn CL-X) (defalias 'lsp--folding-range-p #[257 "\301!>\205 \302\207" [cl-struct-lsp--folding-range-tags type-of t] 3 (#$ . 110862)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp--folding-range-p side-effect-free error-free put lsp--folding-range cl-deftype-satisfies] 5) #@79 compiler-macro for inlining `lsp--folding-range-beg'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--folding-range-beg--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--folding-range-beg (progn (or (lsp--folding-range-p cl-x) (signal 'wrong-type-argument (list 'lsp--folding-range cl-x))) (aref cl-x 1))) nil] 9 (#$ . 111170)]) (put 'lsp--folding-range-beg 'compiler-macro 'lsp--folding-range-beg--cmacro) #@67 Access slot "beg" of `lsp--folding-range' struct CL-X. (fn CL-X) (defalias 'lsp--folding-range-beg #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 1] 5 (#$ . 111617)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--folding-range-beg side-effect-free t] 4) #@79 compiler-macro for inlining `lsp--folding-range-end'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--folding-range-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--folding-range-end (progn (or (lsp--folding-range-p cl-x) (signal 'wrong-type-argument (list 'lsp--folding-range cl-x))) (aref cl-x 2))) nil] 9 (#$ . 111988)]) (put 'lsp--folding-range-end 'compiler-macro 'lsp--folding-range-end--cmacro) #@67 Access slot "end" of `lsp--folding-range' struct CL-X. (fn CL-X) (defalias 'lsp--folding-range-end #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 2] 5 (#$ . 112435)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--folding-range-end side-effect-free t] 4) #@80 compiler-macro for inlining `lsp--folding-range-kind'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--folding-range-kind--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--folding-range-kind (progn (or (lsp--folding-range-p cl-x) (signal 'wrong-type-argument (list 'lsp--folding-range cl-x))) (aref cl-x 3))) nil] 9 (#$ . 112806)]) (put 'lsp--folding-range-kind 'compiler-macro 'lsp--folding-range-kind--cmacro) #@68 Access slot "kind" of `lsp--folding-range' struct CL-X. (fn CL-X) (defalias 'lsp--folding-range-kind #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 3] 5 (#$ . 113258)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--folding-range-kind side-effect-free t] 4) #@84 compiler-macro for inlining `lsp--folding-range-children'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--folding-range-children--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--folding-range-children (progn (or (lsp--folding-range-p cl-x) (signal 'wrong-type-argument (list 'lsp--folding-range cl-x))) (aref cl-x 4))) nil] 9 (#$ . 113632)]) (put 'lsp--folding-range-children 'compiler-macro 'lsp--folding-range-children--cmacro) #@72 Access slot "children" of `lsp--folding-range' struct CL-X. (fn CL-X) (defalias 'lsp--folding-range-children #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 4] 5 (#$ . 114104)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp--folding-range-children side-effect-free t defalias copy-lsp--folding-range copy-sequence] 4) #@108 compiler-macro for inlining `make-lsp--folding-range'. (fn CL-WHOLE &cl-quote &key BEG END KIND CHILDREN) (defalias 'make-lsp--folding-range--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\211\203D\211@\305>\203,\211AA\262\202\306>A@\203;\307\262\202\310\311@\"\210\202\210\312\313\314\307 \307    & \207" [plist-member :beg :end :kind :children (:beg :end :kind :children :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:beg :end :kind :children)" cl--defsubst-expand (beg end kind children) (cl-block make-lsp--folding-range (record 'lsp--folding-range beg end kind children))] 16 (#$ . 114548)]) (put 'make-lsp--folding-range 'compiler-macro 'make-lsp--folding-range--cmacro) #@88 Constructor for objects of type `lsp--folding-range'. (fn &key BEG END KIND CHILDREN) (defalias 'make-lsp--folding-range #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\211\203D\211@\305>\203,\211AA\262\202\306>A@\203;\307\262\202\310\311@\"\210\202\210\312\313%\207" [plist-member :beg :end :kind :children (:beg :end :kind :children :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:beg :end :kind :children)" record lsp--folding-range] 11 (#$ . 115306)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-lsp--folding-range side-effect-free t cl-struct-define lsp--folding-range nil cl-structure-object record ((cl-tag-slot) (beg) (end) (kind) (children)) cl-struct-lsp--folding-range-tags] 11) (defvar lsp--cached-folding-ranges nil nil) (make-variable-buffer-local 'lsp--cached-folding-ranges) (defvar lsp--cached-nested-folding-ranges nil nil) (make-variable-buffer-local 'lsp--cached-nested-folding-ranges) #@14 (fn RANGE) (defalias 'lsp--folding-range-width #[257 "\301!>\204\302\303\304D\"\210\211\305H\301!>\204!\302\303\304D\"\210\306HZ\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 2 1] 6 (#$ . 116335)]) #@48 Get the folding ranges for the current buffer. (defalias 'lsp--get-folding-ranges #[0 "\301 @=\204:\302\303\304\305 D\"\306\307\310\311\"\"\312!\301 \313\314\315\"\"\316\317\"\320\321\"\322!\262\262\262\262B\266A\207" [lsp--cached-folding-ranges buffer-chars-modified-tick lsp-request "textDocument/foldingRange" :textDocument lsp--text-document-identifier -sort lsp--line-col-comparator cl-mapcan #[257 "\300\301\"\300\302\"\300\303\"\300\304\"BBD\207" [gethash "startLine" "startCharacter" "endLine" "endCharacter"] 8 "\n\n(fn INPUT0)"] lsp--convert-line-col-to-points-batch seq-map make-closure #[257 "\211\301\302\"\301\303\"\301\304\"\301\305\"\301\306\"\307\310\301B\300\311#\301B\300\311#\311%\207" [V0 gethash "startLine" "startCharacter" "endLine" "endCharacter" "kind" record lsp--folding-range nil] 14 "\n\n(fn INPUT0)"] seq-filter #[257 "\301!>\204\302\303\304D\"\210\211\305H\301!>\204!\302\303\304D\"\210\306HW\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 1 2] 6 "\n\n(fn FOLDING-RANGE)"] seq-into list delete-dups] 10 (#$ . 116599)]) #@61 Get a list of nested folding ranges for the current buffer. (defalias 'lsp--get-nested-folding-ranges #[0 "\211A\262\242\302\303 =\203 \203 \207\304\305 !\211\207" [lsp--cached-folding-ranges lsp--cached-nested-folding-ranges nil buffer-chars-modified-tick lsp--folding-range-build-trees lsp--get-folding-ranges] 5 (#$ . 117753)]) #@15 (fn RANGES) (defalias 'lsp--folding-range-build-trees #[257 "\303\304\"\262\305\306 \307\211%\211C\211\203N\211@\310@\"\204%A\262\202\311@!\n>\2046\312\313\306@D\"\210@\211\314\314HBI\266\211B\262A\266\202\202\210\311!\n>\204^\312\313\306D\"\210\314H\207" [most-negative-fixnum most-positive-fixnum cl-struct-lsp--folding-range-tags seq-sort lsp--range-before-p record lsp--folding-range nil lsp--range-inside-p type-of signal wrong-type-argument 4] 11 (#$ . 118099)]) #@63 Return non-nil if folding range R1 lies inside R2 (fn R1 R2) (defalias 'lsp--range-inside-p #[514 "\301!>\204\302\303\304D\"\210\305H\301!>\204!\302\303\304D\"\210\305HY\205M\301!>\2047\302\303\304D\"\210\306H\301!>\204I\302\303\304D\"\210\306HX\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 1 2] 7 (#$ . 118604)]) #@63 Return non-nil if folding range R1 ends before R2 (fn R1 R2) (defalias 'lsp--range-before-p #[514 "\301!>\204\302\303\304D\"\210\305H\301!>\204!\302\303\304D\"\210\305HW\206u\301!>\2047\302\303\304D\"\210\305H\301!>\204I\302\303\304D\"\210\305HU\205u\301!>\204_\302\303\304D\"\210\211\306H\301!>\204q\302\303\304D\"\210\306HW\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 1 2] 7 (#$ . 118996)]) #@76 Return non-nil if POINT lies inside folding range RANGE. (fn POINT RANGE) (defalias 'lsp--point-inside-range-p #[514 "\301!>\204\302\303\304D\"\210\305HY\205+\301!>\204'\302\303\304D\"\210\306HX\207" [cl-struct-lsp--folding-range-tags type-of signal wrong-type-argument lsp--folding-range 1 2] 7 (#$ . 119478)]) #@83 Return the innermost folding range POINT lies in. (fn &optional (POINT (point))) (defalias 'lsp--get-current-innermost-folding-range #[128 "\211\203 \211A\262\242\202`\203\300\301\302GTD\"\210\303\304\305\"\306 \307#\207" [signal wrong-number-of-arguments lsp--get-current-innermost-folding-range seq-reduce make-closure #[514 "\301\300\"\203\203\302\"\203\207\207" [V0 lsp--point-inside-range-p lsp--range-inside-p] 5 "\n\n(fn INNERMOST-RANGE CURR-RANGE)"] lsp--get-folding-ranges nil] 6 (#$ . 119811)]) #@83 Return the outermost folding range POINT lies in. (fn &optional (POINT (point))) (defalias 'lsp--get-current-outermost-folding-range #[128 "\211\203 \211A\262\242\202`\203\300\301\302GTD\"\210\303\304\305\"\306 \307#A\207" [signal wrong-number-of-arguments lsp--get-current-outermost-folding-range seq-reduce make-closure #[514 "\211\211A\262\242\301\302!\303\300\"\203\"\203\211V\203\"\211B\207\207" [V0 nil lsp--folding-range-width lsp--point-inside-range-p] 11 "\n\n(fn INPUT0 INPUT1)"] lsp--get-folding-ranges nil] 6 (#$ . 120344)]) (defalias 'lsp--folding-range-at-point-bounds #[0 "\302\303!\204\f\304\305!\205=\205=\306 \211\205;\307! >\204%\310\311\312D\"\210\211\313H\307! >\2047\310\311\312D\"\210\314HB\262\207" [lsp-enable-folding cl-struct-lsp--folding-range-tags lsp--capability :foldingRangeProvider lsp--registered-capability "textDocument/foldingRange" lsp--get-current-innermost-folding-range type-of signal wrong-type-argument lsp--folding-range 1 2] 6]) (put 'lsp--folding-range 'bounds-of-thing-at-point 'lsp--folding-range-at-point-bounds) #@27 (fn &optional BACKWARD) (defalias 'lsp--get-nearest-folding-range #[256 "`\300\211\204-\203eX\202dY\204-\203!S\262\202%T\262\301!\262\202\207" [nil lsp--get-current-innermost-folding-range] 5 (#$ . 121450)]) #@10 (fn N) (defalias 'lsp--folding-range-at-point-forward-op #[257 "\302\303!\204\f\304\305!\205r\205r\211\306U?\205r\3072r\310!\306\211W\205o\311\312\306W!\211\203b\306W\203J\313! >\204D\314\315\316D\"\210\211\317H\202\\\313! >\204Y\314\315\316D\"\210\211\320Hb\266\202h\321\307\311\"\266\211T\262\202\266\2020\207" [lsp-enable-folding cl-struct-lsp--folding-range-tags lsp--capability :foldingRangeProvider lsp--registered-capability "textDocument/foldingRange" 0 --cl-block-break-- abs nil lsp--get-nearest-folding-range type-of signal wrong-type-argument lsp--folding-range 1 2 throw] 9 (#$ . 121686)]) (put 'lsp--folding-range 'forward-op 'lsp--folding-range-at-point-forward-op) (defalias 'lsp--folding-range-at-point-beginning-op #[0 "\300 @b\207" [lsp--folding-range-at-point-bounds] 1]) (put 'lsp--folding-range 'beginning-op 'lsp--folding-range-at-point-beginning-op) (defalias 'lsp--folding-range-at-point-end-op #[0 "\300 Ab\207" [lsp--folding-range-at-point-bounds] 1]) (put 'lsp--folding-range 'end-op 'lsp--folding-range-at-point-end-op) (defalias 'lsp--range-at-point-bounds #[0 "\300 \206\301\302!\205\303\304\305\306 \"!\211\205\307!\262\207" [lsp--folding-range-at-point-bounds lsp--capability :hoverProvider lsp:hover-range\? lsp-request "textDocument/hover" lsp--text-document-position-params lsp--range-to-region] 4]) (put 'lsp--range 'bounds-of-thing-at-point 'lsp--range-at-point-bounds) #@40 Toggle client-server protocol logging. (defalias 'lsp-toggle-trace-io #[0 "?\301\302\203 \303\202\304\"\207" [lsp-print-io lsp--info "Server logging %s." "enabled" "disabled"] 3 (#$ . 123136) nil]) #@33 Toggle signature auto activate. (defalias 'lsp-toggle-signature-auto-activate #[0 "?\205\301\302\303\203\304\202\305\"\210\306 \207" [lsp-signature-auto-activate (:on-trigger-char) lsp--info "Signature autoactivate %s." "enabled" "disabled" lsp--update-signature-help-hook] 3 (#$ . 123346) nil]) #@28 Toggle on type formatting. (defalias 'lsp-toggle-on-type-formatting #[0 "?\301\302\203 \303\202\304\"\210\305 \207" [lsp-enable-on-type-formatting lsp--info "On type formatting is %s." "enabled" "disabled" lsp--update-on-type-formatting-hook] 3 (#$ . 123657) nil]) #@29 Toggle symbol highlighting. (defalias 'lsp-toggle-symbol-highlight #[0 "?\211\203\301\302!\203\303\304\305\306\307$\210\310\311!\207?\205*\312\304\305\307#\210\313\314!\210\310\315!\207" [lsp-enable-symbol-highlighting lsp-feature\? "textDocument/documentHighlight" add-hook lsp-on-idle-hook lsp--document-highlight nil t lsp--info "Symbol highlighting enabled in current buffer." remove-hook lsp--remove-overlays lsp-highlight "Symbol highlighting disabled in current buffer."] 6 (#$ . 123934) nil]) #@45 List of key binding/short description pair. (defvar lsp--binding-descriptions nil (#$ . 124449)) #@286 In KEYMAP, define key sequence KEY as DEF conditionally. This is like `define-key', except the definition disappears whenever COND evaluates to nil. DESC is the short-description for the binding. BINDINGS is a list of (key def desc cond). (fn KEYMAP KEY DEF DESC COND &rest BINDINGS) (defalias 'lsp-define-conditional-key '(macro . #[1413 "\300\301\302\303 \"\304\305     BBBB\"\"!\207" [macroexp-progn -mapcat make-closure #[257 "\211\211A\262\242\211A\262\242\211A\262\242@\301\300\302\303\304\305 \"\306\307\310\311\312\313 E\314BBE\257DF\311\315D\316\317\320\317\302 \nDDEEED\207" [V0 define-key quote menu-item format "maybe-%s" :filter lambda (item) when with-current-buffer (or (when (buffer-live-p lsp--describe-buffer) lsp--describe-buffer) (current-buffer)) (item) stringp setq lsp--binding-descriptions nconc] 20 "\n\n(fn INPUT0)"] -partition 4] 16 (#$ . 124553)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put lsp-define-conditional-key lisp-indent-function defun put edebug-form-spec (form form form form form &rest sexp)] 5) (defvar lsp--describe-buffer nil) #@41 (fn FN BUFFER &optional PREFIX MENUS) (defalias 'lsp-describe-buffer-bindings-advice #[1026 "#)\207" [lsp--describe-buffer] 8 (#$ . 125677)]) (advice-add 'describe-buffer-bindings :around 'lsp-describe-buffer-bindings-advice) #@17 (fn MAPPINGS) (defalias 'lsp--prepend-prefix #[257 "\300\301\302\303\"\"\207" [-mapcat #[257 "\211\211A\262\242@\301QD\207" [lsp-keymap-prefix " "] 7 "\n\n(fn INPUT0)"] -partition 2] 6 (#$ . 125917)]) (defvar lsp-command-map (byte-code "\301 \302\303\304#\210\305\244\302\306\307#\210\310\244\302\311\312#\210\313\244\302\314\315#\210\316\244\302\317\320#\210\321\244\302\322\323#\210\324\244\302\325\326#\210\327\244\302\330\331#\210\332\244\302\333\334#\210\335\244\302\336\337#\210\340\244\302\341\342#\210\343\244\302\344\345#\210\346\244\302\347\350#\210\351\244\302\352\353#\210\354\244\302\355\356#\210\357\244\302\360\361#\210\362\244\302\363\364#\210\365\244\302\366\367#\210\370\244\302\371\372#\210\373\244\302\374\375#\210\376\244\302\377\201@#\210\201A\244\302\201B\201C#\210\201D\244\302\201E\201F#\210\201G\244\302\201H\201I#\210\201J\244\302\201K\201L#\210\201M\244\302\201N\201O#\210\201P\244\302\201Q\201R#\210\201S\244\302\201T\201U#\210\201V\244\302\201W\201X#\210\201Y\244\302\201Z\201[#\210\201\\\244\302\201]\201^#\210\201_\244\302\201`\201a#\210\201b\244\302\201c\201d#\210\201e\244\302\201f\201g#\210\201h\244\302\201i\201j#\210\201k\244\302\201l\201m#\210\201n\244\302\201o\201p#\210\201q\244\302\201r\201s#\210\201t\244\302\201u\201v#\210\201w\244\302\201x\201y#\210\201z\244\302\201{\201|#\210\201}\244\207" [lsp--binding-descriptions make-sparse-keymap define-key #1="wD" (menu-item "maybe-lsp-disconnect" lsp-disconnect :filter (lambda #2=(item) (when (with-current-buffer #3=(or (when (buffer-live-p lsp--describe-buffer) lsp--describe-buffer) (current-buffer)) (lsp-workspaces)) . #4=(item)))) (#1# "disconnect") #5="wd" (menu-item "maybe-lsp-describe-session" lsp-describe-session :filter (lambda #2# (when (with-current-buffer #3# t) . #4#))) (#5# "describe session") #6="wq" (menu-item "maybe-lsp-workspace-shutdown" lsp-workspace-shutdown :filter (lambda #2# (when (with-current-buffer #3# (lsp-workspaces)) . #4#))) (#6# "shutdown server") #7="wr" (menu-item "maybe-lsp-workspace-restart" lsp-workspace-restart :filter (lambda #2# (when (with-current-buffer #3# (lsp-workspaces)) . #4#))) (#7# "restart server") #8="ws" (menu-item "maybe-lsp" lsp :filter (lambda #2# (when (with-current-buffer #3# t) . #4#))) (#8# "start server") #9="==" (menu-item "maybe-lsp-format-buffer" lsp-format-buffer :filter (lambda #2# (when (with-current-buffer #3# (or (lsp-feature\? "textDocument/rangeFormatting") (lsp-feature\? "textDocument/formatting"))) . #4#))) (#9# "format buffer") #10="=r" (menu-item "maybe-lsp-format-region" lsp-format-region :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/rangeFormatting")) . #4#))) (#10# "format region") #11="Fa" (menu-item "maybe-lsp-workspace-folders-add" lsp-workspace-folders-add :filter (lambda #2# (when (with-current-buffer #3# t) . #4#))) (#11# "add folder") #12="Fb" (menu-item "maybe-lsp-workspace-blacklist-remove" lsp-workspace-blacklist-remove :filter (lambda #2# (when (with-current-buffer #3# t) . #4#))) (#12# "un-blacklist folder") #13="Fr" (menu-item "maybe-lsp-workspace-folders-remove" lsp-workspace-folders-remove :filter (lambda #2# (when (with-current-buffer #3# t) . #4#))) (#13# "remove folder") #14="TD" (menu-item "maybe-lsp-modeline-diagnostics-mode" lsp-modeline-diagnostics-mode :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/publishDiagnostics")) . #4#))) (#14# "toggle modeline diagnostics") #15="TL" (menu-item "maybe-lsp-toggle-trace-io" lsp-toggle-trace-io :filter (lambda #2# (when (with-current-buffer #3# t) . #4#))) (#15# "toggle log io") #16="TS" (menu-item "maybe-lsp-ui-sideline-mode" lsp-ui-sideline-mode :filter (lambda #2# (when (with-current-buffer #3# (featurep 'lsp-ui-sideline)) . #4#))) (#16# "toggle sideline") #17="TT" (menu-item "maybe-lsp-treemacs-sync-mode" lsp-treemacs-sync-mode :filter (lambda #2# (when (with-current-buffer #3# (featurep 'lsp-treemacs)) . #4#))) (#17# "toggle treemacs integration") #18="Ta" (menu-item "maybe-lsp-modeline-code-actions-mode" lsp-modeline-code-actions-mode :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/codeAction")) . #4#))) (#18# "toggle modeline code actions") #19="Tb" (menu-item "maybe-lsp-headerline-breadcrumb-mode" lsp-headerline-breadcrumb-mode :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/documentSymbol")) . #4#))) (#19# "toggle breadcrumb") #20="Td" (menu-item "maybe-lsp-ui-doc-mode" lsp-ui-doc-mode :filter (lambda #2# (when (with-current-buffer #3# (featurep 'lsp-ui-doc)) . #4#))) (#20# "toggle documentation popup") #21="Tf" (menu-item "maybe-lsp-toggle-on-type-formatting" lsp-toggle-on-type-formatting :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/onTypeFormatting")) . #4#))) (#21# "toggle on type formatting") #22="Th" (menu-item "maybe-lsp-toggle-symbol-highlight" lsp-toggle-symbol-highlight :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/documentHighlight")) . #4#))) (#22# "toggle highlighting") #23="Tl" (menu-item "maybe-lsp-lens-mode" lsp-lens-mode :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/codeLens")) . #4#))) (#23# "toggle lenses") #24="Ts" (menu-item "maybe-lsp-toggle-signature-auto-activate" lsp-toggle-signature-auto-activate :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/signatureHelp")) . #4#))) (#24# "toggle signature") #25="ga" (menu-item "maybe-xref-find-apropos" xref-find-apropos :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "workspace/symbol")) . #4#))) (#25# "find symbol in workspace") #26="gd" (menu-item "maybe-lsp-find-declaration" lsp-find-declaration :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/declaration")) . #4#))) (#26# "find declarations") #27="ge" (menu-item "maybe-lsp-treemacs-errors-list" lsp-treemacs-errors-list :filter (lambda #2# (when (with-current-buffer #3# (fboundp 'lsp-treemacs-errors-list)) . #4#))) (#27# "show errors") #28="gg" (menu-item "maybe-lsp-find-definition" lsp-find-definition :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/definition")) . #4#))) (#28# "find definitions") #29="gh" (menu-item "maybe-lsp-treemacs-call-hierarchy" lsp-treemacs-call-hierarchy :filter (lambda #2# (when (with-current-buffer #3# (and (lsp-feature\? "callHierarchy/incomingCalls") (fboundp 'lsp-treemacs-call-hierarchy))) . #4#))) (#29# "call hierarchy") #30="gi" (menu-item "maybe-lsp-find-implementation" lsp-find-implementation :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/implementation")) . #4#))) (#30# "find implementations") #31="gr" (menu-item "maybe-lsp-find-references" lsp-find-references :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/references")) . #4#))) (#31# "find references") #32="gt" (menu-item "maybe-lsp-find-type-definition" lsp-find-type-definition :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/typeDefinition")) . #4#))) (#32# "find type definition") #33="hg" (menu-item "maybe-lsp-ui-doc-glance" lsp-ui-doc-glance :filter (lambda #2# (when (with-current-buffer #3# (and (featurep 'lsp-ui-doc) (lsp-feature\? "textDocument/hover"))) . #4#))) (#33# "glance symbol") #34="hh" (menu-item "maybe-lsp-describe-thing-at-point" lsp-describe-thing-at-point :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/hover")) . #4#))) (#34# "describe symbol at point") #35="hs" (menu-item "maybe-lsp-signature-activate" lsp-signature-activate :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/signatureHelp")) . #4#))) (#35# "signature help") #36="ro" (menu-item "maybe-lsp-organize-imports" lsp-organize-imports :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/codeAction")) . #4#))) (#36# "organize imports") #37="rr" (menu-item "maybe-lsp-rename" lsp-rename :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/rename")) . #4#))) (#37# "rename") #38="aa" (menu-item "maybe-lsp-execute-code-action" lsp-execute-code-action :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/codeAction")) . #4#))) (#38# "code actions") #39="ah" (menu-item "maybe-lsp-document-highlight" lsp-document-highlight :filter (lambda #2# (when (with-current-buffer #3# (lsp-feature\? "textDocument/documentHighlight")) . #4#))) (#39# "highlight symbol") #40="al" (menu-item "maybe-lsp-avy-lens" lsp-avy-lens :filter (lambda #2# (when (with-current-buffer #3# (and (bound-and-true-p lsp-lens-mode) (featurep 'avy))) . #4#))) (#40# "lens") #41="Gg" (menu-item "maybe-lsp-ui-peek-find-definitions" lsp-ui-peek-find-definitions :filter (lambda #2# (when (with-current-buffer #3# (and (lsp-feature\? "textDocument/definition") (fboundp 'lsp-ui-peek-find-definitions))) . #4#))) (#41# "peek definitions") #42="Gi" (menu-item "maybe-lsp-ui-peek-find-implementation" lsp-ui-peek-find-implementation :filter (lambda #2# (when (with-current-buffer #3# (and (fboundp 'lsp-ui-peek-find-implementation) (lsp-feature\? "textDocument/implementation"))) . #4#))) (#42# "peek implementations") #43="Gr" (menu-item "maybe-lsp-ui-peek-find-references" lsp-ui-peek-find-references :filter (lambda #2# (when (with-current-buffer #3# (and (fboundp 'lsp-ui-peek-find-references) (lsp-feature\? "textDocument/references"))) . #4#))) (#43# "peek references") #44="Gs" (menu-item "maybe-lsp-ui-peek-find-workspace-symbol" lsp-ui-peek-find-workspace-symbol :filter (lambda #2# (when (with-current-buffer #3# (and (fboundp 'lsp-ui-peek-find-workspace-symbol) (lsp-feature\? "workspace/symbol"))) . #4#))) (#44# "peek workspace symbol")] 5)) #@165 Adds descriptions for `lsp-mode-map' to `which-key-mode' for the current active `major-mode', or for all major modes when ALL-MODES is t. (fn &optional ALL-MODES) (defalias 'lsp-enable-which-key-integration #[256 "\211\203\302\202\f\303\304\"\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332 BBBBBBBBBBBBBBBBBBBB!\"\207" [major-mode lsp--binding-descriptions which-key-add-key-based-replacements apply-partially which-key-add-major-mode-key-based-replacements apply lsp--prepend-prefix "" "lsp" "w" "workspaces" "F" "folders" "=" "formatting" "T" "toggle" "g" "goto" "h" "help" "r" "refactor" "a" "code actions" "G" "peek"] 26 (#$ . 135949)]) #@19 Globstar pattern. (defconst lsp-globstar "**" (#$ . 136643)) #@68 The character by which we split path components in a glob pattern. (defconst lsp-glob-split 47 (#$ . 136710)) #@74 Forward or backslash to be used as a path separator in computed regexps. (defconst lsp-path-regexp "[/\\\\]" (#$ . 136826)) #@48 A regexp matching anything other than a slash. (defconst lsp-non-path-regexp "[^/\\\\]" (#$ . 136956)) #@26 Globstar in regexp form. (defconst lsp-globstar-regexp (byte-code "\302\303 \211 &\207" [lsp-path-regexp lsp-non-path-regexp format "\\(?:%s\\|%s+%s\\|%s%s+\\)*?"] 7) (#$ . 137065)) #@92 Split PATTERN at SPLIT-CHAR while respecting braces and brackets. (fn PATTERN SPLIT-CHAR) (defalias 'lsp-split-glob-pattern #[514 "\205x\300\211\211\301\302\300\"\262\211\203e\211@\3032]\211=\2039\204T\204TB\262\301\262\304\303\300\"\210\202T\211\305\267\202T\306\262\202T\300\262\202T\306\262\202T\300\262\307!P\211\2620\210A\266\202\202\210\211\211\301\230\262\204t\211B\262\237\266\204\207" [nil "" append --cl-block-\'exit-point-- throw #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (123 63 125 69 91 75 93 81)) t char-to-string] 11 (#$ . 137256)]) #@95 Helper function to convert a PATTERN from LSP's glob syntax to an Elisp regexp. (fn PATTERN) (defalias 'lsp--glob-to-regexp #[257 "\211\211\301\230\262\203 \301\207\301C\302\"\303\304\"\203\266\305\207\306C\307\310\311$\"\210\242\207" [lsp-glob-split #1="" lsp-split-glob-pattern -all\? #[257 "\211=\207" [lsp-globstar] 3 "\n\n(fn SEGMENT)"] ".*" nil seq-do-indexed make-closure #[514 " \230\203\302\242?\205\300\211\242\fP\240\210\302\306\240\207\307\310\307\310\311\307\"\262\211\203\363\211@\312\313\"\204=\203=\314!P\262\202\354\203\210\312\315\"\203Q\211\310\230\262\203\210\312\316\"\203\\\317\202\211\320>\203o\211\310\230\262\203o\321\202\312 \"\203z\310\202\322\314!!P\262\210\202\354\211\323\267\202\341\306\262\202\354\306\262\202\354\324\325\"\326\327\330\331#\332Q\300\211\242P\240\210\307\262\310\262\266\202\354\300\211\242\333\334R\240\210\307\262\310\262\202\354\300\211\242P\240\210\202\354\300\211\242\335Q\240\210\202\354\300\211\242\322\314!!P\240\210A\266\202\202\"\210\301GSW\203T\3018 \230\203\336\\\301GW\203\300\211\242 P\240\210\302\307\240\266\204\207" [V0 V1 V2 lsp-globstar lsp-globstar-regexp lsp-glob-split t nil #1# append char-equal 125 char-to-string 93 45 "-" (94 33) "^" regexp-quote #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (123 142 91 148 125 154 93 184 63 202 42 213)) lsp-split-glob-pattern 44 "\\(?:" mapconcat lsp--glob-to-regexp "\\|" "\\)" "[" "]" "*?" 2 lsp-non-path-regexp lsp-path-regexp] 14 "\n\n(fn SEGMENT INDEX)"]] 10 (#$ . 137894)]) #@228 If GLOB-PATTERN does not start with a brace, return a singleton list containing GLOB-PATTERN. If GLOB-PATTERN does start with a brace, return a list of the comma-separated globs within the top-level braces. (fn GLOB-PATTERN) (defalias 'lsp-glob-unbrace-at-top-level #[257 "\300\301\"\204\n\211C\207\302\303\304O\305\"\207" [string-prefix-p "{" lsp-split-glob-pattern 1 -1 44] 5 (#$ . 139524)]) #@116 Convert GLOB-PATTERN to a regexp wrapped with the beginning- and end-of-string meta-characters. (fn GLOB-PATTERN) (defalias 'lsp-glob-convert-to-wrapped-regexp #[257 "\300\301\302!!\303Q\207" ["\\`" lsp--glob-to-regexp string-trim "\\'"] 5 (#$ . 139930)]) #@71 Convert a GLOB-PATTERN to a list of Elisp regexps. (fn GLOB-PATTERN) (defalias 'lsp-glob-to-regexps #[257 "\300!\301!\302\303\"\207" [string-trim lsp-glob-unbrace-at-top-level seq-map lsp-glob-convert-to-wrapped-regexp] 6 (#$ . 140194)]) #@14 (fn EVENT) (defalias 'lsp-mouse-click #[257 "\301!\302\"\303\304\305\"\"\306\211@\262!\210\307 \203!\211\310=\204&\311!b\210\312\313\314\315\316##\207" [lsp-mode-menu event-start x-popup-menu lookup-key apply vector select-window region-active-p lsp-execute-code-action posn-point run-with-idle-timer 0.001 nil make-closure #[0 "\302\300\205\303\301!\207" [V0 V1 nil call-interactively] 3]] 11 (#$ . 140442) "e"]) #@24 Keymap for `lsp-mode'. (defvar lsp-mode-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\203&\303\314! #\210\207" [lsp-keymap-prefix lsp-command-map make-sparse-keymap define-key [C-down-mouse-1] lsp-find-definition-mouse [C-mouse-1] ignore [mouse-3] lsp-mouse-click [100663328] lsp-signature-activate kbd] 5) (#$ . 140880)) #@85 Non-nil if Lsp mode is enabled. Use the command `lsp-mode' to change this variable. (defvar lsp-mode nil (#$ . 141260)) (make-variable-buffer-local 'lsp-mode) #@22 (fn &optional ARG) (defalias 'lsp-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [lsp-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks lsp-mode-hook lsp-mode-on-hook lsp-mode-off-hook called-interactively-p any message "Lsp mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 141425) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar lsp-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\310\211%\207" [lsp-mode-map lsp-mode-hook variable-documentation put "Hook run after entering or leaving `lsp-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode lsp-mode (" LSP[" (lsp--buffer-workspaces (:eval (mapconcat #'lsp--workspace-print lsp--buffer-workspaces "][")) (:propertize "Disconnected" face warning)) "]")] 6) #@20 Menu for lsp-mode. (defvar lsp-mode-menu (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\307\320\321\322\323\324\325\326\327\330\257\257\"\207" [easy-menu-create-menu nil ["Go to definition" lsp-find-definition :active (lsp-feature\? "textDocument/definition")] ["Find references" lsp-find-references :active (lsp-feature\? "textDocument/references")] ["Find implementations" lsp-find-implementation :active (lsp-feature\? "textDocument/implementation")] ["Find declarations" lsp-find-declaration :active (lsp-feature\? "textDocument/declaration")] ["Go to type declaration" lsp-find-type-definition :active (lsp-feature\? "textDocument/typeDefinition")] "--" ["Describe" lsp-describe-thing-at-point] ["Code action" lsp-execute-code-action] ["Format" lsp-format-buffer] ["Highlight references" lsp-document-highlight] ["Type Hierarchy" lsp-java-type-hierarchy :visible (lsp-can-execute-command\? "java.navigate.resolveTypeHierarchy")] ["Type Hierarchy" lsp-treemacs-type-hierarchy :visible (and (not (lsp-can-execute-command\? "java.navigate.resolveTypeHierarchy")) (functionp 'lsp-treemacs-type-hierarchy) (lsp-feature\? "textDocument/typeHierarchy"))] ["Call Hierarchy" lsp-treemacs-call-hierarchy :visible (and (functionp 'lsp-treemacs-call-hierarchy) (lsp-feature\? "textDocument/callHierarchy"))] ["Rename" lsp-rename :active (lsp-feature\? "textDocument/rename")] ("Session" ["View logs" lsp-workspace-show-log] ["Describe" lsp-describe-session] ["Shutdown" lsp-shutdown-workspace] ["Restart" lsp-restart-workspace]) ("Workspace Folders" ["Add" lsp-workspace-folders-add] ["Remove" lsp-workspace-folders-remove] ["Open" lsp-workspace-folders-open]) ("Toggle features" ["Lenses" lsp-lens-mode] ["Headerline breadcrumb" lsp-headerline-breadcrumb-mode] ["Modeline code actions" lsp-modeline-code-actions-mode] ["Modeline diagnostics" lsp-modeline-diagnostics-mode]) "---" "Debug" :active (bound-and-true-p dap-ui-mode) :filter #[257 "\301\300!\205 \302\233\207" [dap-ui-menu-items boundp 3] 3 "\n\n(fn _)"]] 26) (#$ . 142670)) (defalias 'make-lsp-client 'make-lsp--client) #@85 compiler-macro for inlining `lsp--registered-capability-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--registered-capability-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--registered-capability-p (and (memq (type-of cl-x) cl-struct-lsp--registered-capability-tags) t)) nil] 9 (#$ . 144785)]) (put 'lsp--registered-capability-p 'compiler-macro 'lsp--registered-capability-p--cmacro) #@13 (fn CL-X) (defalias 'lsp--registered-capability-p #[257 "\301!>\205 \302\207" [cl-struct-lsp--registered-capability-tags type-of t] 3 (#$ . 145217)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp--registered-capability-p side-effect-free error-free put lsp--registered-capability cl-deftype-satisfies] 5) #@86 compiler-macro for inlining `lsp--registered-capability-id'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--registered-capability-id--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--registered-capability-id (progn (or (lsp--registered-capability-p cl-x) (signal 'wrong-type-argument (list 'lsp--registered-capability cl-x))) (aref cl-x 1))) nil] 9 (#$ . 145557)]) (put 'lsp--registered-capability-id 'compiler-macro 'lsp--registered-capability-id--cmacro) #@74 Access slot "id" of `lsp--registered-capability' struct CL-X. (fn CL-X) (defalias 'lsp--registered-capability-id #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--registered-capability-tags type-of signal wrong-type-argument lsp--registered-capability 1] 5 (#$ . 146055)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--registered-capability-id side-effect-free t] 4) #@90 compiler-macro for inlining `lsp--registered-capability-method'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--registered-capability-method--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--registered-capability-method (progn (or (lsp--registered-capability-p cl-x) (signal 'wrong-type-argument (list 'lsp--registered-capability cl-x))) (aref cl-x 2))) nil] 9 (#$ . 146463)]) (put 'lsp--registered-capability-method 'compiler-macro 'lsp--registered-capability-method--cmacro) #@78 Access slot "method" of `lsp--registered-capability' struct CL-X. (fn CL-X) (defalias 'lsp--registered-capability-method #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--registered-capability-tags type-of signal wrong-type-argument lsp--registered-capability 2] 5 (#$ . 146981)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--registered-capability-method side-effect-free t] 4) #@91 compiler-macro for inlining `lsp--registered-capability-options'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--registered-capability-options--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--registered-capability-options (progn (or (lsp--registered-capability-p cl-x) (signal 'wrong-type-argument (list 'lsp--registered-capability cl-x))) (aref cl-x 3))) nil] 9 (#$ . 147401)]) (put 'lsp--registered-capability-options 'compiler-macro 'lsp--registered-capability-options--cmacro) #@79 Access slot "options" of `lsp--registered-capability' struct CL-X. (fn CL-X) (defalias 'lsp--registered-capability-options #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--registered-capability-tags type-of signal wrong-type-argument lsp--registered-capability 3] 5 (#$ . 147924)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp--registered-capability-options side-effect-free t defalias copy-lsp--registered-capability copy-sequence] 4) #@112 compiler-macro for inlining `make-lsp--registered-capability'. (fn CL-WHOLE &cl-quote &key ID METHOD OPTIONS) (defalias 'make-lsp--registered-capability--cmacro #[385 "\300\301\"\206\302A@\300\303\"\206\304A@\300\305\"A@\211\203E\211@\306>\203.\211AA\262\202\307>A@\203<\310\262\202\311\312@\"\210\202\210\313\314\315\310\310&\207" [plist-member :id (nil "") :method (nil " ") :options (:id :method :options :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:id :method :options)" cl--defsubst-expand (id method options) (cl-block make-lsp--registered-capability (record 'lsp--registered-capability id method options))] 14 (#$ . 148413)]) (put 'make-lsp--registered-capability 'compiler-macro 'make-lsp--registered-capability--cmacro) #@92 Constructor for objects of type `lsp--registered-capability'. (fn &key ID METHOD OPTIONS) (defalias 'make-lsp--registered-capability #[128 "\300\301\"\206\302A@\300\303\"\206\304A@\300\305\"A@\211\203E\211@\306>\203.\211AA\262\202\307>A@\203<\310\262\202\311\312@\"\210\202\210\313\314$\207" [plist-member :id (nil "") :method (nil " ") :options (:id :method :options :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:id :method :options)" record lsp--registered-capability] 9 (#$ . 149215)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-lsp--registered-capability side-effect-free t cl-struct-define lsp--registered-capability nil cl-structure-object record ((cl-tag-slot) (id "") (method " ") (options nil)) cl-struct-lsp--registered-capability-tags] 11) #@73 compiler-macro for inlining `lsp--workspace-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-p (and (memq (type-of cl-x) cl-struct-lsp--workspace-tags) t)) nil] 9 (#$ . 150085)]) (put 'lsp--workspace-p 'compiler-macro 'lsp--workspace-p--cmacro) #@13 (fn CL-X) (defalias 'lsp--workspace-p #[257 "\301!>\205 \302\207" [cl-struct-lsp--workspace-tags type-of t] 3 (#$ . 150445)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp--workspace-p side-effect-free error-free put lsp--workspace cl-deftype-satisfies] 5) #@76 compiler-macro for inlining `lsp--workspace-ewoc'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-ewoc--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-ewoc (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 1))) nil] 9 (#$ . 150737)]) (put 'lsp--workspace-ewoc 'compiler-macro 'lsp--workspace-ewoc--cmacro) #@64 Access slot "ewoc" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-ewoc #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 1] 5 (#$ . 151161)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-ewoc side-effect-free t] 4) #@91 compiler-macro for inlining `lsp--workspace-server-capabilities'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-server-capabilities--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-server-capabilities (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 2))) nil] 9 (#$ . 151515)]) (put 'lsp--workspace-server-capabilities 'compiler-macro 'lsp--workspace-server-capabilities--cmacro) #@79 Access slot "server-capabilities" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-server-capabilities #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 2] 5 (#$ . 152014)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-server-capabilities side-effect-free t] 4) #@102 compiler-macro for inlining `lsp--workspace-registered-server-capabilities'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-registered-server-capabilities--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-registered-server-capabilities (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 3))) nil] 9 (#$ . 152414)]) (put 'lsp--workspace-registered-server-capabilities 'compiler-macro 'lsp--workspace-registered-server-capabilities--cmacro) #@90 Access slot "registered-server-capabilities" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-registered-server-capabilities #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 3] 5 (#$ . 152968)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-registered-server-capabilities side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--workspace-root'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-root--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-root (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 4))) nil] 9 (#$ . 153400)]) (put 'lsp--workspace-root 'compiler-macro 'lsp--workspace-root--cmacro) #@64 Access slot "root" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-root #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 4] 5 (#$ . 153824)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-root side-effect-free t] 4) #@78 compiler-macro for inlining `lsp--workspace-client'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-client--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-client (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 5))) nil] 9 (#$ . 154178)]) (put 'lsp--workspace-client 'compiler-macro 'lsp--workspace-client--cmacro) #@66 Access slot "client" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-client #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 5] 5 (#$ . 154612)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-client side-effect-free t] 4) #@81 compiler-macro for inlining `lsp--workspace-host-root'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-host-root--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-host-root (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 6))) nil] 9 (#$ . 154972)]) (put 'lsp--workspace-host-root 'compiler-macro 'lsp--workspace-host-root--cmacro) #@69 Access slot "host-root" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-host-root #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 6] 5 (#$ . 155421)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-host-root side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--workspace-proc'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-proc--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-proc (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 7))) nil] 9 (#$ . 155790)]) (put 'lsp--workspace-proc 'compiler-macro 'lsp--workspace-proc--cmacro) #@64 Access slot "proc" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-proc #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 7] 5 (#$ . 156214)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-proc side-effect-free t] 4) #@80 compiler-macro for inlining `lsp--workspace-cmd-proc'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-cmd-proc--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-cmd-proc (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 8))) nil] 9 (#$ . 156568)]) (put 'lsp--workspace-cmd-proc 'compiler-macro 'lsp--workspace-cmd-proc--cmacro) #@68 Access slot "cmd-proc" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-cmd-proc #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 8] 5 (#$ . 157012)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-cmd-proc side-effect-free t] 4) #@79 compiler-macro for inlining `lsp--workspace-buffers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-buffers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-buffers (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 9))) nil] 9 (#$ . 157378)]) (put 'lsp--workspace-buffers 'compiler-macro 'lsp--workspace-buffers--cmacro) #@67 Access slot "buffers" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-buffers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 9] 5 (#$ . 157817)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-buffers side-effect-free t] 4) #@93 compiler-macro for inlining `lsp--workspace-semantic-tokens-faces'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-semantic-tokens-faces--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-semantic-tokens-faces (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 10))) nil] 9 (#$ . 158180)]) (put 'lsp--workspace-semantic-tokens-faces 'compiler-macro 'lsp--workspace-semantic-tokens-faces--cmacro) #@81 Access slot "semantic-tokens-faces" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-semantic-tokens-faces #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 10] 5 (#$ . 158690)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-semantic-tokens-faces side-effect-free t] 4) #@102 compiler-macro for inlining `lsp--workspace-semantic-tokens-modifier-faces'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-semantic-tokens-modifier-faces--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-semantic-tokens-modifier-faces (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 11))) nil] 9 (#$ . 159097)]) (put 'lsp--workspace-semantic-tokens-modifier-faces 'compiler-macro 'lsp--workspace-semantic-tokens-modifier-faces--cmacro) #@90 Access slot "semantic-tokens-modifier-faces" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-semantic-tokens-modifier-faces #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 11] 5 (#$ . 159652)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-semantic-tokens-modifier-faces side-effect-free t] 4) #@97 compiler-macro for inlining `lsp--workspace-extra-client-capabilities'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-extra-client-capabilities--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-extra-client-capabilities (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 12))) nil] 9 (#$ . 160085)]) (put 'lsp--workspace-extra-client-capabilities 'compiler-macro 'lsp--workspace-extra-client-capabilities--cmacro) #@85 Access slot "extra-client-capabilities" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-extra-client-capabilities #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 12] 5 (#$ . 160615)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-extra-client-capabilities side-effect-free t] 4) #@78 compiler-macro for inlining `lsp--workspace-status'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-status--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-status (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 13))) nil] 9 (#$ . 161033)]) (put 'lsp--workspace-status 'compiler-macro 'lsp--workspace-status--cmacro) #@66 Access slot "status" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-status #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 13] 5 (#$ . 161468)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-status side-effect-free t] 4) #@80 compiler-macro for inlining `lsp--workspace-metadata'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-metadata--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-metadata (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 14))) nil] 9 (#$ . 161829)]) (put 'lsp--workspace-metadata 'compiler-macro 'lsp--workspace-metadata--cmacro) #@68 Access slot "metadata" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-metadata #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 14] 5 (#$ . 162274)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-metadata side-effect-free t] 4) #@79 compiler-macro for inlining `lsp--workspace-watches'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-watches--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-watches (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 15))) nil] 9 (#$ . 162641)]) (put 'lsp--workspace-watches 'compiler-macro 'lsp--workspace-watches--cmacro) #@67 Access slot "watches" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-watches #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 15] 5 (#$ . 163081)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-watches side-effect-free t] 4) #@89 compiler-macro for inlining `lsp--workspace-workspace-folders'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-workspace-folders--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-workspace-folders (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 16))) nil] 9 (#$ . 163445)]) (put 'lsp--workspace-workspace-folders 'compiler-macro 'lsp--workspace-workspace-folders--cmacro) #@77 Access slot "workspace-folders" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-workspace-folders #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 16] 5 (#$ . 163935)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-workspace-folders side-effect-free t] 4) #@79 compiler-macro for inlining `lsp--workspace-last-id'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-last-id--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-last-id (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 17))) nil] 9 (#$ . 164329)]) (put 'lsp--workspace-last-id 'compiler-macro 'lsp--workspace-last-id--cmacro) #@67 Access slot "last-id" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-last-id #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 17] 5 (#$ . 164769)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-last-id side-effect-free t] 4) #@85 compiler-macro for inlining `lsp--workspace-status-string'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-status-string--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-status-string (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 18))) nil] 9 (#$ . 165133)]) (put 'lsp--workspace-status-string 'compiler-macro 'lsp--workspace-status-string--cmacro) #@73 Access slot "status-string" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-status-string #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 18] 5 (#$ . 165603)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-status-string side-effect-free t] 4) #@87 compiler-macro for inlining `lsp--workspace-shutdown-action'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-shutdown-action--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-shutdown-action (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 19))) nil] 9 (#$ . 165985)]) (put 'lsp--workspace-shutdown-action 'compiler-macro 'lsp--workspace-shutdown-action--cmacro) #@75 Access slot "shutdown-action" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-shutdown-action #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 19] 5 (#$ . 166465)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-shutdown-action side-effect-free t] 4) #@83 compiler-macro for inlining `lsp--workspace-diagnostics'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-diagnostics--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-diagnostics (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 20))) nil] 9 (#$ . 166853)]) (put 'lsp--workspace-diagnostics 'compiler-macro 'lsp--workspace-diagnostics--cmacro) #@71 Access slot "diagnostics" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-diagnostics #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 20] 5 (#$ . 167313)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--workspace-diagnostics side-effect-free t] 4) #@88 compiler-macro for inlining `lsp--workspace-work-done-tokens'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--workspace-work-done-tokens--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--workspace-work-done-tokens (progn (or (lsp--workspace-p cl-x) (signal 'wrong-type-argument (list 'lsp--workspace cl-x))) (aref cl-x 21))) nil] 9 (#$ . 167689)]) (put 'lsp--workspace-work-done-tokens 'compiler-macro 'lsp--workspace-work-done-tokens--cmacro) #@76 Access slot "work-done-tokens" of `lsp--workspace' struct CL-X. (fn CL-X) (defalias 'lsp--workspace-work-done-tokens #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 21] 5 (#$ . 168174)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp--workspace-work-done-tokens side-effect-free t defalias copy-lsp--workspace copy-sequence] 4) #@370 compiler-macro for inlining `make-lsp--workspace'. (fn CL-WHOLE &cl-quote &key EWOC SERVER-CAPABILITIES REGISTERED-SERVER-CAPABILITIES ROOT CLIENT HOST-ROOT PROC CMD-PROC BUFFERS SEMANTIC-TOKENS-FACES SEMANTIC-TOKENS-MODIFIER-FACES EXTRA-CLIENT-CAPABILITIES STATUS METADATA WATCHES WORKSPACE-FOLDERS LAST-ID STATUS-STRING SHUTDOWN-ACTION DIAGNOSTICS WORK-DONE-TOKENS) (defalias 'make-lsp--workspace--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\300 \311\"A@\300\n\312\"A@\300 \313\"A@\300\f\314\"A@\300 \315\"A@\300\316\"\206_\317A@\300\320\"\206j\321A@\300\322\"A@\300\323\"\206|\324A@\300\325\"A@\300\326\"A@\300\327\"\206\225\330A@\300\331\"\206\240\332A@\211\203\317\211@\333>\203\267\211AA\262\202\244\334>A@\203\306\335\262\202\244\336\337@\"\210\202\244\210\340\341\342\335\335&\207" [plist-member :ewoc :server-capabilities :registered-server-capabilities :root :client :host-root :proc :cmd-proc :buffers :semantic-tokens-faces :semantic-tokens-modifier-faces :extra-client-capabilities :status :metadata (nil (make-hash-table :test 'equal)) :watches (nil (make-hash-table :test 'equal)) :workspace-folders :last-id (nil 0) :status-string :shutdown-action :diagnostics (nil (make-hash-table :test 'equal)) :work-done-tokens (nil (make-hash-table :test 'equal)) (:ewoc :server-capabilities :registered-server-capabilities :root :client :host-root :proc :cmd-proc :buffers :semantic-tokens-faces :semantic-tokens-modifier-faces :extra-client-capabilities :status :metadata :watches :workspace-folders :last-id :status-string :shutdown-action :diagnostics :work-done-tokens :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:ewoc :server-capabilities :registered-server-capabilities :root :client :host-root :proc :cmd-proc :buffers :semantic-tokens-faces :semantic-tokens-modifier-faces :extra-client-capabilities :status :metadata :watches :workspace-folders :last-id :status-string :shutdown-action :diagnostics :work-done-tokens)" cl--defsubst-expand (ewoc server-capabilities registered-server-capabilities root client host-root proc cmd-proc buffers semantic-tokens-faces semantic-tokens-modifier-faces extra-client-capabilities status metadata watches workspace-folders last-id status-string shutdown-action diagnostics work-done-tokens) (cl-block make-lsp--workspace (record 'lsp--workspace ewoc server-capabilities registered-server-capabilities root client host-root proc cmd-proc buffers semantic-tokens-faces semantic-tokens-modifier-faces extra-client-capabilities status metadata watches workspace-folders last-id status-string shutdown-action diagnostics work-done-tokens))] 50 (#$ . 168619)]) (put 'make-lsp--workspace 'compiler-macro 'make-lsp--workspace--cmacro) #@350 Constructor for objects of type `lsp--workspace'. (fn &key EWOC SERVER-CAPABILITIES REGISTERED-SERVER-CAPABILITIES ROOT CLIENT HOST-ROOT PROC CMD-PROC BUFFERS SEMANTIC-TOKENS-FACES SEMANTIC-TOKENS-MODIFIER-FACES EXTRA-CLIENT-CAPABILITIES STATUS METADATA WATCHES WORKSPACE-FOLDERS LAST-ID STATUS-STRING SHUTDOWN-ACTION DIAGNOSTICS WORK-DONE-TOKENS) (defalias 'make-lsp--workspace #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\300 \311\"A@\300\n\312\"A@\300 \313\"A@\300\f\314\"A@\300 \315\"A@\300\316\"\206d\317\320\321\322\"DA@\300\323\"\206t\317\320\321\322\"DA@\300\324\"A@\300\325\"\206\206\326A@\300\327\"A@\300\330\"A@\300\331\"\206\244\317\320\321\322\"DA@\300\332\"\206\264\317\320\321\322\"DA@\211\203\343\211@\333>\203\313\211AA\262\202\270\334>A@\203\332\317\262\202\270\335\336@\"\210\202\270\210\337\340&\207" [plist-member :ewoc :server-capabilities :registered-server-capabilities :root :client :host-root :proc :cmd-proc :buffers :semantic-tokens-faces :semantic-tokens-modifier-faces :extra-client-capabilities :status :metadata nil make-hash-table :test equal :watches :workspace-folders :last-id (nil 0) :status-string :shutdown-action :diagnostics :work-done-tokens (:ewoc :server-capabilities :registered-server-capabilities :root :client :host-root :proc :cmd-proc :buffers :semantic-tokens-faces :semantic-tokens-modifier-faces :extra-client-capabilities :status :metadata :watches :workspace-folders :last-id :status-string :shutdown-action :diagnostics :work-done-tokens :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:ewoc :server-capabilities :registered-server-capabilities :root :client :host-root :proc :cmd-proc :buffers :semantic-tokens-faces :semantic-tokens-modifier-faces :extra-client-capabilities :status :metadata :watches :workspace-folders :last-id :status-string :shutdown-action :diagnostics :work-done-tokens)" record lsp--workspace] 45 (#$ . 171505)]) (cl-struct-define 'lsp--workspace nil 'cl-structure-object 'record nil '((cl-tag-slot) (ewoc nil) (server-capabilities nil) (registered-server-capabilities nil) (root nil) (client nil) (host-root nil) (proc nil) (cmd-proc nil) (buffers nil) (semantic-tokens-faces nil) (semantic-tokens-modifier-faces nil) (extra-client-capabilities nil) (status nil) (metadata (make-hash-table :test 'equal)) (watches (make-hash-table :test 'equal)) (workspace-folders nil) (last-id 0) (status-string nil) (shutdown-action) (diagnostics (make-hash-table :test 'equal)) (work-done-tokens (make-hash-table :test 'equal))) 'cl-struct-lsp--workspace-tags 'lsp--workspace t) #@70 compiler-macro for inlining `lsp-session-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-session-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-session-p (and (memq (type-of cl-x) cl-struct-lsp-session-tags) t)) nil] 9 (#$ . 174241)]) (put 'lsp-session-p 'compiler-macro 'lsp-session-p--cmacro) #@13 (fn CL-X) (defalias 'lsp-session-p #[257 "\301!>\205 \302\207" [cl-struct-lsp-session-tags type-of t] 3 (#$ . 174583)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp-session-p side-effect-free error-free put lsp-session cl-deftype-satisfies] 5) #@76 compiler-macro for inlining `lsp-session-folders'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-session-folders--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-session-folders (progn (or (lsp-session-p cl-x) (signal 'wrong-type-argument (list 'lsp-session cl-x))) (aref cl-x 1))) nil] 9 (#$ . 174863)]) (put 'lsp-session-folders 'compiler-macro 'lsp-session-folders--cmacro) #@64 Access slot "folders" of `lsp-session' struct CL-X. (fn CL-X) (defalias 'lsp-session-folders #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp-session 1] 5 (#$ . 175281)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp-session-folders side-effect-free t] 4) #@86 compiler-macro for inlining `lsp-session-folders-blacklist'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-session-folders-blacklist--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-session-folders-blacklist (progn (or (lsp-session-p cl-x) (signal 'wrong-type-argument (list 'lsp-session cl-x))) (aref cl-x 2))) nil] 9 (#$ . 175629)]) (put 'lsp-session-folders-blacklist 'compiler-macro 'lsp-session-folders-blacklist--cmacro) #@74 Access slot "folders-blacklist" of `lsp-session' struct CL-X. (fn CL-X) (defalias 'lsp-session-folders-blacklist #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp-session 2] 5 (#$ . 176097)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp-session-folders-blacklist side-effect-free t] 4) #@87 compiler-macro for inlining `lsp-session-server-id->folders'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-session-server-id->folders--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-session-server-id->folders (progn (or (lsp-session-p cl-x) (signal 'wrong-type-argument (list 'lsp-session cl-x))) (aref cl-x 3))) nil] 9 (#$ . 176475)]) (put 'lsp-session-server-id->folders 'compiler-macro 'lsp-session-server-id->folders--cmacro) #@75 Access slot "server-id->folders" of `lsp-session' struct CL-X. (fn CL-X) (defalias 'lsp-session-server-id->folders #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp-session 3] 5 (#$ . 176948)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp-session-server-id->folders side-effect-free t] 4) #@84 compiler-macro for inlining `lsp-session-folder->servers'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-session-folder->servers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-session-folder->servers (progn (or (lsp-session-p cl-x) (signal 'wrong-type-argument (list 'lsp-session cl-x))) (aref cl-x 4))) nil] 9 (#$ . 177329)]) (put 'lsp-session-folder->servers 'compiler-macro 'lsp-session-folder->servers--cmacro) #@72 Access slot "folder->servers" of `lsp-session' struct CL-X. (fn CL-X) (defalias 'lsp-session-folder->servers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp-session 4] 5 (#$ . 177787)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp-session-folder->servers side-effect-free t] 4) #@77 compiler-macro for inlining `lsp-session-metadata'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp-session-metadata--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp-session-metadata (progn (or (lsp-session-p cl-x) (signal 'wrong-type-argument (list 'lsp-session cl-x))) (aref cl-x 5))) nil] 9 (#$ . 178159)]) (put 'lsp-session-metadata 'compiler-macro 'lsp-session-metadata--cmacro) #@65 Access slot "metadata" of `lsp-session' struct CL-X. (fn CL-X) (defalias 'lsp-session-metadata #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp-session 5] 5 (#$ . 178582)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp-session-metadata side-effect-free t defalias copy-lsp-session copy-sequence] 4) #@149 compiler-macro for inlining `make-lsp-session'. (fn CL-WHOLE &cl-quote &key FOLDERS FOLDERS-BLACKLIST SERVER-ID->FOLDERS FOLDER->SERVERS METADATA) (defalias 'make-lsp-session--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"\206\304A@\300\305\"\206\306A@\300\307\"\206(\310A@\211\203V\211@\311>\203>\211AA\262\202+\312>A@\203M\313\262\202+\314\315@\"\210\202+\210\316\317\320\313\n\313\n\n\n\n\n&\n\207" [plist-member :folders :folders-blacklist :server-id->folders (nil (make-hash-table :test 'equal)) :folder->servers (nil (make-hash-table :test 'equal)) :metadata (nil (make-hash-table :test 'equal)) (:folders :folders-blacklist :server-id->folders :folder->servers :metadata :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:folders :folders-blacklist :server-id->folders :folder->servers :metadata)" cl--defsubst-expand (folders folders-blacklist server-id->folders folder->servers metadata) (cl-block make-lsp-session (record 'lsp-session folders folders-blacklist server-id->folders folder->servers metadata))] 18 (#$ . 178984)]) (put 'make-lsp-session 'compiler-macro 'make-lsp-session--cmacro) #@129 Constructor for objects of type `lsp-session'. (fn &key FOLDERS FOLDERS-BLACKLIST SERVER-ID->FOLDERS FOLDER->SERVERS METADATA) (defalias 'make-lsp-session #[128 "\300\301\"A@\300\302\"A@\300\303\"\206\304\305\306\307\"DA@\300\310\"\206(\304\305\306\307\"DA@\300\311\"\2067\304\305\306\307\"DA@\211\203e\211@\312>\203M\211AA\262\202:\313>A@\203\\\304\262\202:\314\315@\"\210\202:\210\316\317&\207" [plist-member :folders :folders-blacklist :server-id->folders nil make-hash-table :test equal :folder->servers :metadata (:folders :folders-blacklist :server-id->folders :folder->servers :metadata :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:folders :folders-blacklist :server-id->folders :folder->servers :metadata)" record lsp-session] 13 (#$ . 180155)]) (cl-struct-define 'lsp-session nil 'cl-structure-object 'record nil '((cl-tag-slot) (folders) (folders-blacklist) (server-id->folders (make-hash-table :test 'equal)) (folder->servers (make-hash-table :test 'equal)) (metadata (make-hash-table :test 'equal))) 'cl-struct-lsp-session-tags 'lsp-session t) #@150 Set current workspace status to STATUS-STRING. If WORKSPACE is not specified defaults to lsp--cur-workspace. (fn STATUS-STRING &optional WORKSPACE) (defalias 'lsp-workspace-status #[513 "\205 \302\303\304#\305\206! >\204 \306\307\310\206D\"\210\206%\211\311I\207" [lsp--cur-workspace cl-struct-lsp--workspace-tags replace-regexp-in-string "%" "%%" type-of signal wrong-type-argument lsp--workspace 18] 7 (#$ . 181283)]) #@150 Associate KEY with VALUE in the WORKSPACE metadata. If WORKSPACE is not provided current workspace will be used. (fn KEY VALUE &optional WORKSPACE) (defalias 'lsp-session-set-metadata #[770 "\301\302 \303!>\204\304\305\302D\"\210\211\306H\262#\207" [cl-struct-lsp-session-tags puthash lsp-session type-of signal wrong-type-argument 5] 11 (#$ . 181727)]) (defalias 'lsp-workspace-set-metadata 'lsp-session-set-metadata) #@126 Lookup KEY in WORKSPACE metadata. If WORKSPACE is not provided current workspace will be used. (fn KEY &optional WORKSPACE) (defalias 'lsp-session-get-metadata #[513 "\301\302 \303!>\204\304\305\302D\"\210\211\306H\262\"\207" [cl-struct-lsp-session-tags gethash lsp-session type-of signal wrong-type-argument 5] 9 (#$ . 182162)]) (defalias 'lsp-workspace-get-metadata 'lsp-session-get-metadata) #@91 Associate TOKEN with VALUE in the WORKSPACE work-done-tokens. (fn TOKEN VALUE WORKSPACE) (defalias 'lsp-workspace-set-work-done-token #[771 "\301\302!>\204\303\304\305D\"\210\306H#\207" [cl-struct-lsp--workspace-tags puthash type-of signal wrong-type-argument lsp--workspace 21] 10 (#$ . 182571)]) #@71 Lookup TOKEN in the WORKSPACE work-done-tokens. (fn TOKEN WORKSPACE) (defalias 'lsp-workspace-get-work-done-token #[514 "\301\302!>\204\303\304\305D\"\210\306H\"\207" [cl-struct-lsp--workspace-tags gethash type-of signal wrong-type-argument lsp--workspace 21] 8 (#$ . 182885)]) #@73 Remove TOKEN from the WORKSPACE work-done-tokens. (fn TOKEN WORKSPACE) (defalias 'lsp-workspace-rem-work-done-token #[514 "\301\302!>\204\303\304\305D\"\210\306H\"\207" [cl-struct-lsp--workspace-tags remhash type-of signal wrong-type-argument lsp--workspace 21] 8 (#$ . 183177)]) #@97 Create notification body for method METHOD and parameters PARAMS. (fn METHOD &optional PARAMS) (defalias 'lsp--make-notification #[513 "\300\301\302\303\257\207" [:jsonrpc "2.0" :method :params] 8 (#$ . 183471)]) (byte-code "\300\301\302\"\210\300\303\302\"\207" [defalias lsp--make-request lsp--make-notification lsp-make-request] 3) #@58 Create response for REQUEST with RESULT. (fn ID RESULT) (defalias 'lsp--make-response #[514 "\300\301\302\303\257\207" [:jsonrpc "2.0" :id :result] 8 (#$ . 183816)]) #@97 Create notification body for method METHOD and parameters PARAMS. (fn METHOD &optional PARAMS) (defalias 'lsp-make-notification #[513 "\300\"\207" [lsp--make-notification] 5 (#$ . 183992)]) #@15 (fn PARAMS) (defalias 'lsp--json-serialize '(macro . #[257 "\300\301!\210\302\303!\203\303\304BB\207\305\306\307DE\207" [require json fboundp json-serialize (:null-object nil :false-object :json-false) let ((json-false :json-false)) json-encode] 5 (#$ . 184191)])) #@84 Create a LSP message from PARAMS, after encoding it to a JSON string. (fn PARAMS) (defalias 'lsp--make-message #[257 "\300\301\302\303\304%\305\306\307!T!\310\311\260\207" [json-serialize :null-object nil :false-object :json-false "Content-Length: " number-to-string string-bytes " \n \n" "\n"] 7 (#$ . 184468)]) #@73 compiler-macro for inlining `lsp--log-entry-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-p (and (memq (type-of cl-x) cl-struct-lsp--log-entry-tags) t)) nil] 9 (#$ . 184792)]) (put 'lsp--log-entry-p 'compiler-macro 'lsp--log-entry-p--cmacro) #@13 (fn CL-X) (defalias 'lsp--log-entry-p #[257 "\301!>\205 \302\207" [cl-struct-lsp--log-entry-tags type-of t] 3 (#$ . 185152)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put lsp--log-entry-p side-effect-free error-free put lsp--log-entry cl-deftype-satisfies] 5) #@81 compiler-macro for inlining `lsp--log-entry-timestamp'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-timestamp (progn (or (lsp--log-entry-p cl-x) (signal 'wrong-type-argument (list 'lsp--log-entry cl-x))) (aref cl-x 1))) nil] 9 (#$ . 185444)]) (put 'lsp--log-entry-timestamp 'compiler-macro 'lsp--log-entry-timestamp--cmacro) #@69 Access slot "timestamp" of `lsp--log-entry' struct CL-X. (fn CL-X) (defalias 'lsp--log-entry-timestamp #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--log-entry-tags type-of signal wrong-type-argument lsp--log-entry 1] 5 (#$ . 185893)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--log-entry-timestamp side-effect-free t] 4) #@84 compiler-macro for inlining `lsp--log-entry-process-time'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-process-time--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-process-time (progn (or (lsp--log-entry-p cl-x) (signal 'wrong-type-argument (list 'lsp--log-entry cl-x))) (aref cl-x 2))) nil] 9 (#$ . 186262)]) (put 'lsp--log-entry-process-time 'compiler-macro 'lsp--log-entry-process-time--cmacro) #@72 Access slot "process-time" of `lsp--log-entry' struct CL-X. (fn CL-X) (defalias 'lsp--log-entry-process-time #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--log-entry-tags type-of signal wrong-type-argument lsp--log-entry 2] 5 (#$ . 186726)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--log-entry-process-time side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--log-entry-type'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-type--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-type (progn (or (lsp--log-entry-p cl-x) (signal 'wrong-type-argument (list 'lsp--log-entry cl-x))) (aref cl-x 3))) nil] 9 (#$ . 187104)]) (put 'lsp--log-entry-type 'compiler-macro 'lsp--log-entry-type--cmacro) #@64 Access slot "type" of `lsp--log-entry' struct CL-X. (fn CL-X) (defalias 'lsp--log-entry-type #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--log-entry-tags type-of signal wrong-type-argument lsp--log-entry 3] 5 (#$ . 187528)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--log-entry-type side-effect-free t] 4) #@78 compiler-macro for inlining `lsp--log-entry-method'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-method--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-method (progn (or (lsp--log-entry-p cl-x) (signal 'wrong-type-argument (list 'lsp--log-entry cl-x))) (aref cl-x 4))) nil] 9 (#$ . 187882)]) (put 'lsp--log-entry-method 'compiler-macro 'lsp--log-entry-method--cmacro) #@66 Access slot "method" of `lsp--log-entry' struct CL-X. (fn CL-X) (defalias 'lsp--log-entry-method #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--log-entry-tags type-of signal wrong-type-argument lsp--log-entry 4] 5 (#$ . 188316)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--log-entry-method side-effect-free t] 4) #@74 compiler-macro for inlining `lsp--log-entry-id'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-id--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-id (progn (or (lsp--log-entry-p cl-x) (signal 'wrong-type-argument (list 'lsp--log-entry cl-x))) (aref cl-x 5))) nil] 9 (#$ . 188676)]) (put 'lsp--log-entry-id 'compiler-macro 'lsp--log-entry-id--cmacro) #@62 Access slot "id" of `lsp--log-entry' struct CL-X. (fn CL-X) (defalias 'lsp--log-entry-id #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--log-entry-tags type-of signal wrong-type-argument lsp--log-entry 5] 5 (#$ . 189090)]) (byte-code "\300\301\302\303#\300\207" [function-put lsp--log-entry-id side-effect-free t] 4) #@76 compiler-macro for inlining `lsp--log-entry-body'. (fn CL-WHOLE-ARG CL-X) (defalias 'lsp--log-entry-body--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block lsp--log-entry-body (progn (or (lsp--log-entry-p cl-x) (signal 'wrong-type-argument (list 'lsp--log-entry cl-x))) (aref cl-x 6))) nil] 9 (#$ . 189438)]) (put 'lsp--log-entry-body 'compiler-macro 'lsp--log-entry-body--cmacro) #@64 Access slot "body" of `lsp--log-entry' struct CL-X. (fn CL-X) (defalias 'lsp--log-entry-body #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-lsp--log-entry-tags type-of signal wrong-type-argument lsp--log-entry 6] 5 (#$ . 189862)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put lsp--log-entry-body side-effect-free t defalias copy-lsp--log-entry copy-sequence] 4) #@125 compiler-macro for inlining `make-lsp--log-entry'. (fn CL-WHOLE &cl-quote &key TIMESTAMP PROCESS-TIME TYPE METHOD ID BODY) (defalias 'make-lsp--log-entry--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315\316\311 \311      & \207" [plist-member :timestamp :process-time :type :method :id :body (:timestamp :process-time :type :method :id :body :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:timestamp :process-time :type :method :id :body)" cl--defsubst-expand (timestamp process-time type method id body) (cl-block make-lsp--log-entry (record 'lsp--log-entry timestamp process-time type method id body))] 20 (#$ . 190270)]) (put 'make-lsp--log-entry 'compiler-macro 'make-lsp--log-entry--cmacro) #@105 Constructor for objects of type `lsp--log-entry'. (fn &key TIMESTAMP PROCESS-TIME TYPE METHOD ID BODY) (defalias 'make-lsp--log-entry #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315&\207" [plist-member :timestamp :process-time :type :method :id :body (:timestamp :process-time :type :method :id :body :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:timestamp :process-time :type :method :id :body)" record lsp--log-entry] 15 (#$ . 191169)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-lsp--log-entry side-effect-free t cl-struct-define lsp--log-entry nil cl-structure-object record ((cl-tag-slot) (timestamp) (process-time) (type) (method) (id) (body)) cl-struct-lsp--log-entry-tags] 11) #@227 Create an outgoing log object from BODY with method METHOD and id ID. If ID is non-nil, then the body is assumed to be a notification. TYPE can either be 'incoming or 'outgoing (fn METHOD ID BODY TYPE &optional PROCESS-TIME) (defalias 'lsp--make-log-entry #[1284 "\300>\204\n\301\302!\210\303\304\305\306!   &\207" [#1=(incoming-req outgoing-req incoming-notif outgoing-notif incoming-resp outgoing-resp) cl--assertion-failed (memq type '#1#) record lsp--log-entry format-time-string "%I:%M:%S %p"] 13 (#$ . 192111)]) #@14 (fn ENTRY) (defalias 'lsp--log-entry-pp #[257 "\303!>\204\f\304\305!\210\211\306\307\310\303!>\210\311H\312H\313H\314H\315H\316H\317\320\"\321\267\202|\317\322#\202}\317\323#\202}\317\324\"\202}\317\325\"\202}\317\326$\202}\317\327$\202}\310\330\331>\203\210\332\202\211\333\334!\335\260\262 \336 \337\340\341\307%\262 \fc\266\214*\207" [cl-struct-lsp--log-entry-tags json-encoding-pretty-print json-false type-of cl--assertion-failed (lsp--log-entry-p entry) :json-false t nil 1 4 5 3 2 6 format "[Trace - %s] " #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (incoming-req 64 outgoing-req 74 incoming-notif 84 outgoing-notif 92 incoming-resp 100 outgoing-resp 112)) "Received request '%s - (%s)." "Sending request '%s - (%s)'." "Received notification '%s'." "Sending notification '%s'." "Received response '%s - (%s)' in %dms." "Sending response '%s - (%s)'. Processing request took %dms" "\n" (incoming-resp ougoing-resp) "Result: " "Params: " json-encode "\n\n\n" propertize mouse-face highlight read-only] 23 (#$ . 192644)]) (defvar lsp--log-io-ewoc nil nil) (make-variable-buffer-local 'lsp--log-io-ewoc) #@18 (fn WORKSPACE) (defalias 'lsp--get-create-io-ewoc #[257 "\304!>\204\305\306\307D\"\210\211\310H\203A\311\312\304!>\204&\305\306\307D\"\210\310H!!\203A\304!>\204=\305\306\307D\"\210\211\310H\207r\313!q\210 \314=\204P\314 \210\315\302!\210\316\317\320\321\211\316$\304!>\204l\305\306\307D\"\210\211\211\310 I\266)\304!>\204\203\305\306\307D\"\210\211\310H\207" [cl-struct-lsp--workspace-tags major-mode window-point-insertion-type lsp--log-io-ewoc type-of signal wrong-type-argument lsp--workspace 1 buffer-live-p ewoc-buffer lsp--get-log-buffer-create lsp-log-io-mode make-local-variable t ewoc-create lsp--log-entry-pp nil] 7 (#$ . 193865)]) #@13 (fn EWOC) (defalias 'lsp--ewoc-count #[257 "\300C\301\302\"\303\"\210\242\207" [0 make-closure #[257 "\300\211\242T\240\207" [V0] 3 "\n\n(fn _)"] ewoc-map] 6 (#$ . 194544)]) #@24 (fn ENTRY WORKSPACE) (defalias 'lsp--log-entry-new #[514 "\302!\303=?\205 \304!\303=\206Y?\205\305S\"\306\303\2037\307\"\262\310\"\210\211\262\202\"\311\")\207" [lsp-io-messages-max inhibit-read-only lsp--get-create-io-ewoc t lsp--ewoc-count ewoc-nth nil ewoc-prev ewoc-delete ewoc-enter-last] 9 (#$ . 194730)]) #@64 Send BODY as a notification to the language server. (fn BODY) (defalias 'lsp--send-notification #[257 "\300\301\302\"\303 \"\207" [mapcar make-closure #[257 "\211\n\203\304\305\306\300\307\"\310\306\300\311\"\312$ \"\210\313\314\300!\315 ! >\204)\316\317\320 D\"\210 \321H\")\207" [V0 lsp--cur-workspace lsp-print-io cl-struct-lsp--workspace-tags lsp--log-entry-new lsp--make-log-entry plist-get :method nil :params outgoing-notif lsp--send-no-wait lsp--make-message type-of signal wrong-type-argument lsp--workspace 7] 8 "\n\n(fn IT)"] lsp-workspaces] 5 (#$ . 195076)]) (defalias 'lsp-send-notification 'lsp--send-notification) #@59 Send notification METHOD with PARAMS. (fn METHOD PARAMS) (defalias 'lsp-notify #[514 "\300\301\"!\207" [lsp--send-notification lsp--make-notification] 6 (#$ . 195717)]) #@48 Check whether buffer lsp workspace(s) are set. (defalias 'lsp--cur-workspace-check #[0 "\300 \204\f\301\302\303\304\211$\210\304\207" [lsp-workspaces cl--assertion-failed (lsp-workspaces) "No language server(s) is associated with this buffer." nil] 5 (#$ . 195895)]) #@263 Send BODY as a request to the language server, get the response. If NO-WAIT is non-nil, don't synchronously wait for a response. If NO-MERGE is non-nil, don't merge the results but return an alist mapping workspace->result. (fn BODY &optional NO-WAIT NO-MERGE) (defalias 'lsp--send-request #[769 "\300\301\302\"\301\303\"\304\305&\207" [lsp-request plist-get :method :params :no-wait :no-merge] 10 (#$ . 196170)]) (defalias 'lsp-send-request 'lsp--send-request "Send BODY as a request to the language server and return the response\nsynchronously.\n\n(fn BODY)") #@216 Send request METHOD with PARAMS. If NO-MERGE is non-nil, don't merge the results but return alist workspace->result. If NO-WAIT is non-nil send the request as notification. (fn METHOD PARAMS &key NO-WAIT NO-MERGE) (defalias 'lsp-request #[642 "\301\302\"A@\301\303\"A@\211\2037\211@\304>\203 \211AA\262\202 \305>A@\203.\306\262\202 \307\310@\"\210\202 \210\203A\311\"\207\312\313 !\211\\\306C\306C\306C\314\315\"\216\316\n\n\314\317\"\320\314\321\"\303\f\322\323\324\325& \210\242\204\231\242\204\231\3262\203\327\306Z\"0\210\312\313 !\262W\203m\307\330 \"\210\202m\211\331\240\210\242\332=\203\250\306\202\321\242\203\262\242\202\321\333\242!\203\302\307\334\242!!\202\321\333\242@!\205\321\307\334\242@!!)\207" [lsp-response-timeout plist-member :no-wait :no-merge (:no-wait :no-merge :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:no-wait :no-merge)" lsp-notify time-to-seconds current-time make-closure #[0 "\300\242?\205 \301\302!\207" [V0 lsp-cancel-request-by-token :sync-request] 2] lsp-request-async #[257 "\300\206\301\240\210\302\303\304\"\207" [V0 :finished throw lsp-done _] 4 "\n\n(fn RES)"] :error-handler #[257 "\300\240\210\301\302\303\"\207" [V0 throw lsp-done _] 4 "\n\n(fn ERR)"] :mode detached :cancel-token :sync-request lsp-done accept-process-output "Timeout while waiting for response. Method: %s" t :finished lsp-json-error\? lsp:json-error-message] 22 (#$ . 196747)]) #@163 Send request METHOD with PARAMS and waits until there is no input. Return same value as `lsp--while-no-input' and respecting `non-essential'. (fn METHOD PARAMS) (defalias 'lsp-request-while-no-input #[514 "\203\235\302\303 !\211 \\\304C\304C\304C\305\306\"\216\307\305\310\"\311\305\312\"\313\314\315\316& \210\242\204]\242\204]\317 \204]\3202G\321Z!0\210\302\303 !\262W\203-\322\323\"\210\202-\211\242\206e\242\240\210\242\324=\203r\304\202\233\242\203|\242\202\233\325\242!\203\214\322\326\242!!\202\233\325\242@!\205\233\322\326\242@!!)\207\327\"\207" [non-essential lsp-response-timeout time-to-seconds current-time nil make-closure #[0 "\300\242\204 \302\303!\210\304 \205 \205\305\306\307\"\207" [V0 lsp--throw-on-input lsp-cancel-request-by-token :sync-request input-pending-p throw input :interrupted] 3] lsp-request-async #[257 "\300\206\301\240\210\302\303\304\"\207" [V0 :finished throw lsp-done _] 4 "\n\n(fn RES)"] :error-handler #[257 "\300\240\210\301\302\303\"\207" [V0 throw lsp-done _] 4 "\n\n(fn ERR)"] :mode detached :cancel-token :sync-request input-pending-p lsp-done sit-for error "Timeout while waiting for response. Method: %s" :finished lsp-json-error\? lsp:json-error-message lsp-request] 17 (#$ . 198244)]) (defvar lsp--cancelable-requests (make-hash-table :test 'equal)) #@1111 Send METHOD with PARAMS as a request to the language server. Call CALLBACK with the response received from the server asynchronously. MODE determines when the callback will be called depending on the condition of the original buffer. It could be: - `detached' which means that the callback will be executed no matter what has happened to the buffer. - `alive' - the callback will be executed only if the buffer from which the call was executed is still alive. - `current' the callback will be executed only if the original buffer is still selected. - `tick' - the callback will be executed only if the buffer was not modified. - `unchanged' - the callback will be executed only if the buffer hasn't changed and if the buffer is not modified. ERROR-HANDLER will be called in case the request has failed. CANCEL-HANDLER will be called in case the request is being canceled. If NO-MERGE is non-nil, don't merge the results but return alist workspace->result. CANCEL-TOKEN is the token that can be used to cancel request. (fn METHOD PARAMS CALLBACK &key MODE ERROR-HANDLER CANCEL-HANDLER NO-MERGE CANCEL-TOKEN) (defalias 'lsp-request-async #[899 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203J\211@\306>\2032\211AA\262\202\307>A@\203A\310\262\202\311\312@\"\210\202\210\313\314\315\316\f\317 \257&\207" [plist-member :mode :error-handler :cancel-handler :no-merge :cancel-token (:mode :error-handler :cancel-handler :no-merge :cancel-token :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:mode :error-handler :cancel-handler :no-merge :cancel-token)" lsp--send-request-async :jsonrpc "2.0" :method :params] 17 (#$ . 199609)]) #@54 (fn ID WORKSPACES HOOK BUF METHOD CANCEL-CALLBACK) (defalias 'lsp--create-request-cancel #[1542 "\300\301&\207" [make-closure #[128 "\302\306=\205 p\303\232?\205&\307\300!\210\301 \310\300!\210\305\203\305 \210)\311\312\304\300\302$\207" [V0 V1 V2 V3 V4 V5 post-command-hook lsp--request-cleanup-hooks lsp--cancel-request lsp-log "Cancelling %s(%s) in hook %s" lsp--buffer-workspaces] 6 "\n\n(fn &rest _)"]] 14 (#$ . 201331)]) #@356 Create async handler expecting COUNT results, merge them and call CALLBACK. MODE determines when the callback will be called depending on the condition of the original buffer. METHOD is the invoked method. If NO-MERGE is non-nil, don't merge the results but return alist workspace->result. ID is the request id. (fn CALLBACK METHOD NO-MERGE WORKSPACES) (defalias 'lsp--create-async-callback #[1028 "\300C\300C\301\302&\207" [nil make-closure #[257 "\nB\306=\203\305\305\242B\240\266\202\304\304\242B\240\266\305\242G\303G=?\205G\305\242G\304\242G\\\303G=\205G\300\302\203>\304\242\202F\307\310\311\304\242\"\301\"!\207" [V0 V1 V2 V3 V4 V5 :error lsp--merge-results -map cl-rest lsp--cur-workspace] 6 "\n\n(fn RESULT)"]] 14 (#$ . 201785)]) #@68 Default error handler. METHOD is the executed method. (fn METHOD) (defalias 'lsp--create-default-error-handler #[257 "\300\301\"\207" [make-closure #[257 "\301\302\303!\206\f\304\305\300\"\"\207" [V0 lsp--warn "%s" lsp--error-string format "%s Request has failed"] 6 "\n\n(fn ERROR)"]] 4 (#$ . 202560)]) (defvar lsp--request-cleanup-hooks (make-hash-table :test 'equal)) #@19 (fn REQUEST-ID) (defalias 'lsp--request-cleanup-hooks #[257 "\301\"\211\205\211 \210\302\"\207" [lsp--request-cleanup-hooks gethash remhash] 5 (#$ . 202941)]) #@55 Cancel request using CANCEL-TOKEN. (fn CANCEL-TOKEN) (defalias 'lsp-cancel-request-by-token #[257 "\302\"\211\205*\211A\262\242\211\205(\211\205&\211\303!\210)\304\"\210\305!\262\262\207" [lsp--cancelable-requests lsp--buffer-workspaces gethash lsp--cancel-request remhash lsp--request-cleanup-hooks] 7 (#$ . 203114)]) #@1097 Send BODY as a request to the language server. Call CALLBACK with the response received from the server asynchronously. MODE determines when the callback will be called depending on the condition of the original buffer. It could be: - `detached' which means that the callback will be executed no matter what has happened to the buffer. - `alive' - the callback will be executed only if the buffer from which the call was executed is still alive. - `current' the callback will be executed only if the original buffer is still selected. - `tick' - the callback will be executed only if the buffer was not modified. - `unchanged' - the callback will be executed only if the buffer hasn't changed and if the buffer is not modified. ERROR-CALLBACK will be called in case the request has failed. CANCEL-CALLBACK will be called in case the request is being canceled. If NO-MERGE is non-nil, don't merge the results but return alist workspace->result. CANCEL-TOKEN is the token that can be used to cancel request. (fn BODY CALLBACK &optional MODE ERROR-CALLBACK CANCEL-CALLBACK NO-MERGE CANCEL-TOKEN) (defalias 'lsp--send-request-async #[1794 "\211\203\304!\210\305!\211\203\341\306 \307 \310\"T\211\311\267\2022\312\2023\313\2023\314\2023\315\2023\316p\317\320\n  & \321>\203V\317\322#\202X\f\323\f $\317\324#\323\206q\325 ! \316 $\317\326 $\205\226\327>\203\224\317\330 #\202\226\331\332\f#\333\317\334& \"\210\335  #\210 \203\313\335\fB #\210\336\317\337\n &\"\210\207\340\341\307\n\310\"\"\207" [lsp-last-id lsp--request-cleanup-hooks lsp--last-active-workspaces lsp--cancelable-requests lsp-cancel-request-by-token lsp--find-workspaces-for current-time plist-get :method #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (alive 34 tick 38 unchanged 42 current 46)) ((kill-buffer-hook . t)) ((kill-buffer-hook . t) (after-change-functions . t)) ((after-change-functions . t) (post-command-hook)) ((post-command-hook)) nil make-closure #[0 "\307\310\311\300\302\303\304\306&\305\"\210\312\301 \"\207" [V0 V1 V2 V3 V4 V5 V6 mapc make-closure #[257 "\211\211A\262\242\211\203&\305\304!\2053r\304q\210\306\307\303\301\304\302\300&\310#)\207\306\307\303\301\304\302\300&\"\207" [V0 V1 V2 V3 V4 buffer-live-p remove-hook lsp--create-request-cancel t] 13 "\n\n(fn INPUT0)"] remhash lsp--cancelable-requests] 8] (tick alive) #[128 "r\301q\210\302\300\")\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] lsp--create-async-callback #[257 "\302\300!\210\301!\207" [V0 V1 lsp--request-cleanup-hooks] 3 "\n\n(fn RESULT)"] lsp--create-default-error-handler #[257 "\301\303!\210\304\300!\210\302!\207" [V0 V1 V2 :error lsp--request-cleanup-hooks] 3 "\n\n(fn ERROR)"] (unchanged tick alive) #[0 "r\301q\210\300 )\207" [V0 V1] 1] plist-put :id mapc #[257 "\211\211A\262\242\305\306\302\300\303\301\304&\307$\207" [V0 V1 V2 V3 V4 add-hook lsp--create-request-cancel nil] 13 "\n\n(fn INPUT0)"] puthash seq-do #[257 "\203\306\307\301\302\310\305\311\"\312$\"\210\313\305!\314\302\303\304\301\300\315 \257\316!>\2040\317\320\321D\"\210\322H\316!>\204C\317\320\323D\"\210\211\324H\262#\210\325\316!>\204]\317\320\321D\"\210\326H\"\207" [V0 V1 V2 V3 V4 V5 lsp--log-entry-new lsp--make-log-entry plist-get :params outgoing-req lsp--make-message puthash current-time type-of signal wrong-type-argument lsp--workspace 5 lsp--client 8 lsp--send-no-wait 7 lsp-log-io cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags] 10 "\n\n(fn WORKSPACE)"] error "The connected server(s) does not support method %s.\nTo find out what capabilities support your server use `M-x lsp-describe-session'\nand expand the capabilities section"] 30 (#$ . 203457)]) (byte-code "\300\301\302\"\210\303\301\304\305#\210\306\307\310\"\207" [defalias lsp-send-request-async lsp--send-request-async make-obsolete lsp-request-async "lsp-mode 7.0.1" add-hook kill-emacs-hook lsp--global-teardown] 4) #@28 Unload working workspaces. (defalias 'lsp--global-teardown #[0 "\300\301\302 \"\207" [mapcar #[257 "\211\301 )\207" [lsp--cur-workspace lsp--shutdown-workspace] 2 "\n\n(fn IT)"] lsp-workspaces] 3 (#$ . 207499)]) #@93 Shut down the language server process for ‘lsp--cur-workspace’. (fn &optional RESTART) (defalias 'lsp--shutdown-workspace #[256 "\3041\"\305\3061\307\310 \"0\210\202\311\312!\266)\313\314\315\"0\210\202(\316\317\"\266\320\n! >\2047\321\322\323\nD\"\210\n\211\324\203B\325\202C\326I\266\327 \207" [lsp-response-timeout lsp--empty-ht lsp--cur-workspace cl-struct-lsp--workspace-tags (debug error) 0.5 (error) lsp-request "shutdown" lsp--error "Timeout while sending shutdown request" lsp-notify "exit" nil message "LSP error: %S" type-of signal wrong-type-argument lsp--workspace 19 restart shutdown lsp--uninitialize-workspace] 5 (#$ . 207718)]) #@131 Cleanup buffer state. When a workspace is shut down, by request or from just disappearing, unset all the variables related to it. (defalias 'lsp--uninitialize-workspace #[0 "\302! >\204\303\304\305D\"\210\306H\302! >\204!\303\304\305D\"\210\307H\310!\203.\311!\210\312\313\"\210\314!\207" [lsp--cur-workspace cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 8 9 process-live-p kill-process mapc #[257 "\301!\205$\302\303\"\211\203\302\304\"\211\305!)\202\"rq\210\306\307!)\262\207" [lsp--buffer-workspaces lsp-buffer-live-p plist-get :with-current-buffer :workspaces #[0 "\300\301!\207" [lsp-managed-mode -1] 2] lsp-managed-mode -1] 5 "\n\n(fn BUF)"] lsp-diagnostics--workspace-cleanup] 5 (#$ . 208390)]) #@99 Return the client capabilities appending CUSTOM-CAPABILITIES. (fn &optional CUSTOM-CAPABILITIES) (defalias 'lsp--client-capabilities #[256 "\306\307\310\311\312\313\314\315\316\317\320\321\"\"BDD\322\306\205\323\324 \205\325\n\205#\326\327%BBBBB\330\331\332\333\334\335\336\313\314\315\316\317\320\321\"\"BD\337BB\340\341\306 \205M\342\303!\205M \343\344\345\346\347\f\203d\350\351!\204d\352\353!\210\354\202m\f\203l\355\202m\354B\356BB\357BB\360\361\362\363 \205\220\364\3069\205\210\3659BC:\205\216\366\"BB\367BBBBBBB\"BBBBBBBBB\370BB\"\207" [lsp-enable-file-watchers lsp-semantic-tokens-enable lsp-lens-enable lsp-semantic-tokens-capabilities lsp-enable-snippet lsp-enable-folding append workspace (workspaceEdit (documentChanges . t) (resourceOperations . ["create" "rename" "delete"])) (applyEdit . t) symbol symbolKind valueSet apply vector number-sequence 1 26 (executeCommand (dynamicRegistration . :json-false)) ((didChangeWatchedFiles (dynamicRegistration . t))) ((workspaceFolders . t) (configuration . t)) ((semanticTokens (refreshSupport . t))) ((codeLens (refreshSupport . :json-false))) ((fileOperations (didCreate . :json-false) (willCreate . :json-false) (didRename . :json-false) (willRename . :json-false) (didDelete . :json-false) (willDelete . :json-false))) textDocument (declaration (linkSupport . t)) (definition (linkSupport . t)) (implementation (linkSupport . t)) (typeDefinition (linkSupport . t)) (synchronization (willSave . t) (didSave . t) (willSaveWaitUntil . t)) documentSymbol ((hierarchicalDocumentSymbolSupport . t)) (formatting (dynamicRegistration . t)) (rangeFormatting (dynamicRegistration . t)) boundp (rename (dynamicRegistration . t) (prepareSupport . t)) (codeAction (dynamicRegistration . t) (isPreferredSupport . t) (codeActionLiteralSupport (codeActionKind (valueSet . ["" "quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))) (resolveSupport (properties . ["edit" "command"])) (dataSupport . t)) completion completionItem snippetSupport featurep yasnippet lsp--warn "Yasnippet is not installed, but `lsp-enable-snippet' is set to `t'. You must either install yasnippet, or disable snippet support." :json-false t ((documentationFormat . ["markdown" "plaintext"]) (resolveAdditionalTextEditsSupport . t) (insertReplaceSupport . t) (resolveSupport (properties . ["documentation" "details" "additionalTextEdits" "command"])) (insertTextModeSupport (valueSet . [1 2]))) ((contextSupport . t)) (signatureHelp (signatureInformation (parameterInformation (labelOffsetSupport . t)))) (documentLink (dynamicRegistration . t) (tooltipSupport . t)) (hover (contentFormat . ["markdown" "plaintext"])) foldingRange (dynamicRegistration . t) rangeLimit ((lineFoldingOnly . t)) ((callHierarchy (dynamicRegistration . :json-false)) (publishDiagnostics (relatedInformation . t) (tagSupport (valueSet . [1 2])) (versionSupport . t)) (moniker) (linkedEditingRange)) ((window (workDoneProgress . t) (showMessage) (showDocument))) lsp-folding-range-limit lsp-folding-line-folding-only] 25 (#$ . 209156)]) #@58 Get all roots for the WORKSPACE. (fn WORKSPACE SESSION) (defalias 'lsp-find-roots-for-workspace #[514 "\301\302\303\304\305\"\306!>\204\307\310\311D\"\210\312H\"\"\207" [cl-struct-lsp-session-tags -filter identity ht-map make-closure #[514 "\301\300\"\205\207" [V0 -contains\?] 5 "\n\n(fn FOLDER WORKSPACES)"] type-of signal wrong-type-argument lsp-session 4] 10 (#$ . 212278)]) #@58 Get watches created for SESSION. (fn &optional SESSION) (defalias 'lsp-session-watches #[256 "\301\302\206\303 \304!>\204\305\306\303D\"\210\211\307H\262\"\206F\310\311\312\"\313\302\206-\303 \304!>\204<\305\306\303D\"\210\211\307H\262#\210\211\262\207" [cl-struct-lsp-session-tags gethash "__watches" lsp-session type-of signal wrong-type-argument 5 make-hash-table :test equal puthash] 10 (#$ . 212677)]) #@53 Process file event. (fn SESSION ROOT-FOLDER EVENT) (defalias 'lsp--file-process-event #[771 "\211AA@\302\"\303A@\"\211S\304\305\"\306\307\310%\311 \312\f! >\2044\313\314\315D\"\210 \316H\"\"\207" [lsp--file-change-type cl-struct-lsp-session-tags f-relative alist-get ash 1 seq-do make-closure #[257 "\306\307\310\300\301\303$\311!\f>\204\312\313\314D\"\210\315H\"\2051\211\316\317\320\321\322\302B\323\324\300!BD!BC\")\207" [V0 V1 V2 V3 cl-struct-lsp--workspace-tags lsp--cur-workspace -any\? make-closure #[257 "\304! >\204\305\306\307D\"\210\211\310H\311\232\2054\312\313\314\300\301\302$\315\304! >\204/\305\306\307D\"\210\316H!\"\207" [V0 V1 V2 cl-struct-lsp--registered-capability-tags type-of signal wrong-type-argument lsp--registered-capability 2 "workspace/didChangeWatchedFiles" seq-find make-closure #[257 "\303\304\"\303\305\"\211\203\306\302\"\307V\205\"\310!\311\312\313\300\301#\"\262\207" [V0 V1 V2 gethash "globPattern" "kind" logand 0 lsp-glob-to-regexps -any\? make-closure #[257 "\302\300\"\206 \302\301\"\207" [V0 V1 string-match] 4 "\n\n(fn RE)"]] 9 "\n\n(fn INPUT0)"] lsp:did-change-watched-files-registration-options-watchers 3] 8 "\n\n(fn CAPABILITY)"] type-of signal wrong-type-argument lsp--workspace 3 lsp-notify "workspace/didChangeWatchedFiles" changes vector type uri lsp--path-to-uri] 9 "\n\n(fn WORKSPACE)"] gethash type-of signal wrong-type-argument lsp-session 4] 16 (#$ . 213110)]) #@39 Register capability REG. (fn INPUT0) (defalias 'lsp--server-register-capability #[257 "\303\304\"\303\305\"\303\306\"\203\\\307\232\203\\\310\311 !\312\313 \311 \"\314!\"\211\211\203Z\211@\315\316\"\317!\211@A@\320\n#\210\321\322!\323\324\311  #\325&\266A\266\202\202%\266\326\327$\330 !\n>\204q\331\332\333 D\"\210 \211\334\334HBI\207" [lsp-enable-file-watchers lsp--cur-workspace cl-struct-lsp--workspace-tags gethash "method" "id" "registerOptions" "workspace/didChangeWatchedFiles" lsp-session-watches lsp-session cl-set-difference lsp-find-roots-for-workspace ht-keys make-lsp-watch :root-directory lsp--get-ignored-regexes-for-workspace-root puthash lsp-watch-root-folder file-truename -partial lsp--file-process-event t record lsp--registered-capability type-of signal wrong-type-argument lsp--workspace 3] 19 (#$ . 214583)]) #@134 With a temp-buffer under `WORKSPACE-ROOT' and evaluate `BODY', useful to access dir-local variables. (fn WORKSPACE-ROOT &rest BODY) (defalias 'lsp--with-workspace-temp-buffer '(macro . #[385 "\300\301\302\303\304\303DEE\305\306\307\310\"BF\207" [with-temp-buffer setq-local buffer-file-name expand-file-name "lsp-mode-temp" (hack-local-variables) prog1 append ((setq-local buffer-file-name nil))] 9 (#$ . 215457)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put lsp--with-workspace-temp-buffer lisp-indent-function 1 put edebug-form-spec t] 5) #@144 Return a list of the form (lsp-file-watch-ignored-files lsp-file-watch-ignored-directories) for the given WORKSPACE-ROOT. (fn WORKSPACE-ROOT) (defalias 'lsp--get-ignored-regexes-for-workspace-root #[257 "\302\303\304\"r\211q\210\305\306\"\216\307\300!\210\310\311\310!\"\312 \210 \313 D\307\300!\210\314*\207" [buffer-file-name lsp-file-watch-ignored-files generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] make-local-variable expand-file-name "lsp-mode-temp" hack-local-variables lsp-file-watch-ignored-directories nil] 6 (#$ . 216032)]) #@101 Cleanup watches in case there are no more workspaces that are interested in that particular folder. (defalias 'lsp--cleanup-hanging-watches #[0 "\301 \302!\303!\211\205E\211@\304\305\306\301 \307!>\204#\310\311\301D\"\210\211\312H\262\"\"\203>\313\314\"\210\315\306\"!\210\316\"\210A\266\202\202\207" [cl-struct-lsp-session-tags lsp-session lsp-session-watches ht-keys -none\? #[257 "\211\301\302!)\207" [lsp--cur-workspace lsp--registered-capability "workspace/didChangeWatchedFiles"] 3 "\n\n(fn WORKSPACE)"] gethash type-of signal wrong-type-argument 4 lsp-log "Cleaning up watches for folder %s. There is no workspace watching this folder..." lsp-kill-watch remhash] 13 (#$ . 216645)]) #@43 Unregister capability UNREG. (fn INPUT0) (defalias 'lsp--server-unregister-capability #[257 "\302\303\"\302\304\"\305! >\204\306\307\310D\"\210\211\311\312\313\314\"\305! >\204/\306\307\310D\"\210\311H\"I\266\211\315\232\205>\316 \207" [lsp--cur-workspace cl-struct-lsp--workspace-tags gethash "id" "method" type-of signal wrong-type-argument lsp--workspace 3 seq-remove make-closure #[257 "\302! >\204\303\304\305D\"\210\211\306H\300\232\207" [V0 cl-struct-lsp--registered-capability-tags type-of signal wrong-type-argument lsp--registered-capability 1] 5 "\n\n(fn E)"] "workspace/didChangeWatchedFiles" lsp--cleanup-hanging-watches] 12 (#$ . 217359)]) #@76 Return the capabilities of the language server associated with the buffer. (defalias 'lsp--server-capabilities #[0 "\300\301\302\303\304 \"\"\207" [apply lsp-merge -keep lsp--workspace-server-capabilities lsp-workspaces] 5 (#$ . 218039)]) #@75 Return whether open and close notifications should be sent to the server. (defalias 'lsp--send-open-close-p #[0 "\300\301 !\211\302>\206 \303!\207" [lsp:server-capabilities-text-document-sync\? lsp--server-capabilities (1 2) lsp:text-document-sync-options-open-close\?] 3 (#$ . 218284)]) #@69 Return whether willSave notifications should be sent to the server. (defalias 'lsp--send-will-save-p #[0 "\300\301\302 !!\207" [lsp:text-document-sync-options-will-save\? lsp:server-capabilities-text-document-sync\? lsp--server-capabilities] 3 (#$ . 218580)]) #@78 Return whether willSaveWaitUntil notifications should be sent to the server. (defalias 'lsp--send-will-save-wait-until-p #[0 "\300\301\302 !!\207" [lsp:text-document-sync-options-will-save-wait-until\? lsp:server-capabilities-text-document-sync\? lsp--server-capabilities] 3 (#$ . 218846)]) #@68 Return whether didSave notifications should be sent to the server. (defalias 'lsp--send-did-save-p #[0 "\300\301 !\211\302>\206 \303!\207" [lsp:server-capabilities-text-document-sync\? lsp--server-capabilities (1 2) lsp:text-document-sync-options-save\?] 3 (#$ . 219143)]) #@80 Return whether save notifications should include the text document's contents. (defalias 'lsp--save-include-text-p #[0 "\300\301\302\303 !!!\207" [lsp:text-document-save-registration-options-include-text\? lsp:text-document-sync-options-save\? lsp:server-capabilities-text-document-sync\? lsp--server-capabilities] 4 (#$ . 219424)]) #@19 Get project root. (defalias 'lsp--suggest-project-root #[0 "\301\302!\203\3031\304 0\202\210\305\2067\301\306!\2036\307 \211\2051\310\311!\203-\311!\2021\312!@\262\2067\207" [default-directory featurep projectile (error) projectile-project-root nil project project-current fboundp project-root project-roots] 3 (#$ . 219763)]) #@31 Read FILE content. (fn FILE) (defalias 'lsp--read-from-file #[257 "\300!\205 \301\302\303\"!@\207" [file-exists-p read-from-string f-read-text utf-8] 5 (#$ . 220112)]) #@132 Persist TO-PERSIST in FILE-NAME. This function creates the parent directories if they don't exist yet. (fn FILE-NAME TO-PERSIST) (defalias 'lsp--persist #[514 "\302\211\303\304\305\306!!\"\210\307\310!\311#*\207" [print-level print-length nil apply f-mkdir f-split f-parent f-write-text prin1-to-string utf-8] 7 (#$ . 220291)]) #@71 Add PROJECT-ROOT to the list of workspace folders. (fn PROJECT-ROOT) (defalias 'lsp-workspace-folders-add #[257 "\301!\302 \303!>\204\304\305\302D\"\210\211\211\306\306H\235\203$\211\202'B\262I\266\307\302 !\210\310\311C\312#\207" [cl-struct-lsp-session-tags lsp-f-canonical lsp-session type-of signal wrong-type-argument 1 lsp--persist-session run-hook-with-args lsp-workspace-folders-changed-functions nil] 9 (#$ . 220632) (byte-code "\301\302\303 \206\304\305$C\207" [default-directory read-directory-name "Select folder to add: " lsp--suggest-project-root nil t] 5)]) #@76 Remove PROJECT-ROOT from the list of workspace folders. (fn PROJECT-ROOT) (defalias 'lsp-workspace-folders-remove #[257 "\211C\211\304\242!\240\210\305\306\242\307 \310!>\204\311\312\307D\"\210\211\313H\262\"\314\305\211\203\213\211A\262\242\262\262T\262\310\211! >\204J\311\312\315D\"\210\316H!\n>\204l\311\312\317\310! >\204f\311\312\315D\"\210\316HD\"\210\310! >\204{\311\312\315D\"\210\316H\320H\203'B\262\202'\266\211\237\262\211\203\275\211@\211\321\322\323\324\325\326\327\330\331\332\f\242!\333\334\242!$!\335\336$\"\"\210)A\266\202\202\221\210\307 \310!>\204\317\311\312\307D\"\210\211\313H\310!>\204\341\311\312\307D\"\210\337H\306\242\"\340\242\"\210\211\211\203M\211@\341\342!\314\305\211\211\203.\211A\262\242\262\262\211\262\203.\343\"?\211\262\203.\262\262T\262\202\377\266\211\262\203F\344\345\346! \242#\210\211\347 \210)A\266\202\202\360\210\310!>\204^\311\312\307D\"\210\211\350\351\242\310 !>\204v\311\312\307 D\"\210\350H\"I\266\352\353\354#\"\210\355\307 !\266\356\357\305\242C#\207" [cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags lsp--cur-workspace lsp-f-canonical nil gethash lsp-session type-of signal wrong-type-argument 4 0 lsp--workspace 5 lsp--client 16 lsp-notify "workspace/didChangeWorkspaceFolders" lsp-make-did-change-workspace-folders-params :event lsp-make-workspace-folders-change-event :removed vector lsp-make-workspace-folder :uri lsp--path-to-uri :name f-filename :added [] 3 remhash t ht-values -contains\? lsp--info "Shutdown %s since folder %s is removed..." lsp--workspace-print lsp--shutdown-workspace 1 -remove-item ht-each make-closure #[514 "\302\303\300\242\"\301#\207" [V0 V1 puthash -remove-item] 7 "\n\n(fn KEY VALUE)"] lsp--persist-session run-hook-with-args lsp-workspace-folders-changed-functions] 17 (#$ . 221230) (byte-code "\302\303\304 \305!>\204\306\307\304D\"\210\211\310H\262\311\312\311\211\313\304 \"&C\207" [cl-struct-lsp-session-tags default-directory completing-read "Select folder to remove: " lsp-session type-of signal wrong-type-argument 1 nil t lsp-find-session-folder] 10)]) #@70 Remove PROJECT-ROOT from the workspace blacklist. (fn PROJECT-ROOT) (defalias 'lsp-workspace-blacklist-remove #[257 "\301 \302!>\204\303\304\301D\"\210\211\211\305\306\301 \302!>\204'\303\304\301D\"\210\211\305H\262\"I\266\307\301 !\207" [cl-struct-lsp-session-tags lsp-session type-of signal wrong-type-argument 2 delete lsp--persist-session] 12 (#$ . 223446) (byte-code "\301\302\303 \304!>\204\305\306\303D\"\210\211\307H\262\310\311$C\207" [cl-struct-lsp-session-tags completing-read "Select folder to remove:" lsp-session type-of signal wrong-type-argument 2 nil t] 7)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias lsp-workspace-folders-switch lsp-workspace-folders-open nil make-obsolete "lsp-mode 6.1"] 4) #@63 Open the directory located at PROJECT-ROOT (fn PROJECT-ROOT) (defalias 'lsp-workspace-folders-open #[257 "\300!\207" [find-file] 3 (#$ . 224206) (byte-code "\301\302\303 \304!>\204\305\306\303D\"\210\211\307H\262\310\311$C\207" [cl-struct-lsp-session-tags completing-read "Open folder: " lsp-session type-of signal wrong-type-argument 1 nil t] 7)]) #@27 (fn TRIGGER-CHARACTERS) (defalias 'lsp--maybe-enable-signature-help #[257 "\301\302\303$\205\f\304 \207" [last-command-event cl-find :key string-to-char lsp-signature-activate] 7 (#$ . 224569)]) (defalias 'lsp--on-type-formatting-handler-create #[0 "\300\301!\211\205\302\303\"\302\304\"\305\306#\266\202\207" [lsp--capability :documentOnTypeFormattingProvider gethash "moreTriggerCharacter" "firstTriggerCharacter" make-closure #[0 "\302\301\300\"\207" [V0 V1 lsp--on-type-formatting] 3]] 7]) #@30 (fn &optional CLEANUP\=\?) (defalias 'lsp--update-on-type-formatting-hook #[256 "\301 \203\211\203\204\302\303\304\305$\207\204?\205#\306\303\305#\207" [lsp-enable-on-type-formatting lsp--on-type-formatting-handler-create add-hook post-self-insert-hook nil t remove-hook] 7 (#$ . 225081)]) (defalias 'lsp--signature-help-handler-create #[0 "\300\301\302!!\205\303\304\301\302!\"\211\205\305\306\"\207" [ht\? lsp--capability :signatureHelpProvider gethash "triggerCharacters" make-closure #[0 "\301\300!\207" [V0 lsp--maybe-enable-signature-help] 2]] 4]) #@30 (fn &optional CLEANUP\=\?) (defalias 'lsp--update-signature-help-hook #[256 "\301 \302=\204\303>\203\211\203\304\305\306\302$\207\204*\302=\206&\303>?\205/\307\305\302#\207" [lsp-signature-auto-activate lsp--signature-help-handler-create t :on-trigger-char add-hook post-self-insert-hook nil remove-hook] 7 (#$ . 225663)]) (defalias 'lsp--after-set-visited-file-name #[0 "\300 \210\301 \207" [lsp-disconnect lsp] 1]) #@101 Non-nil if Lsp-Managed mode is enabled. Use the command `lsp-managed-mode' to change this variable. (defvar lsp-managed-mode nil (#$ . 226105)) (make-variable-buffer-local 'lsp-managed-mode) #@602 Mode for source buffers managed by lsp-mode. This is a minor mode. If called interactively, toggle the `Lsp-Managed mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `lsp-managed-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'lsp-managed-mode #[256 "\305 \306=\203 ?\202\247\203\307W\203\310\202\311\312\301!\2031\313\300 \"\2031\300 B\203\261\314\315!\203H\316\317\320\321B\322\310$\210\323\307!\210\324\325\326\310\311$\210\324\327\330\310\311$\210\324\331\332\310\311$\210\324\333\334\310\311$\210\324\335\336\310\311$\210\324\337\340\310\311$\210\324\341\342\310\311$\210\324\343\344\310\311$\210\345 \210\346 \210\n\203\221\324\347\350\310\311$\210\351 \210\324\352\353\310\311$\210\324\354\355\310\311$\210\356 \357\360\310\361\362\"#\266\202:\363 \210\364\365\366!\322\"\211\365\366!=\204\307\367\366\"\210\210\370\343\344\311#\210\370\325\326\311#\210\370\327\330\311#\210\370\331\332\311#\210\370\333\334\311#\210\370\335\336\311#\210\370\337\340\311#\210\370\341\342\311#\210\345\371!\210\346\371!\210 \203\n\372 !\210\310\370\373\374\311#\210\370\373\375\311#\210\376\377!\210\376\201@!\210\370\347\350\311#\210\370\352\353\311#\210\370\354\355\311#\210\201A\304!\210\310\201B\201C\203J\201D\202M\201E\"\210\201F\201G!\203}\305 \203e\211\305 \232\203}\201H\201I\203u\201J\202x\201K\201L#\210\210\201M \210\207" [lsp-managed-mode local-minor-modes lsp-enable-xref lsp--on-idle-timer lsp-buffer-uri current-message toggle 1 nil t boundp delq lsp-feature\? "textDocument/hover" advice--add-function :before-until #[0 "\300\301!\207" [advice--buffer-local eldoc-documentation-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local eldoc-documentation-function] 4 "\n\n(fn GV--VAL)"] lsp-eldoc-function eldoc-mode add-hook after-change-functions lsp-on-change after-revert-hook lsp-on-revert after-save-hook lsp-on-save auto-save-hook lsp--on-auto-save before-change-functions lsp-before-change before-save-hook lsp--before-save kill-buffer-hook lsp--text-document-did-close post-command-hook lsp--post-command lsp--update-on-type-formatting-hook lsp--update-signature-help-hook xref-backend-functions lsp--xref-backend lsp-configure-buffer change-major-mode-hook lsp-disconnect after-set-visited-file-name-hook lsp--after-set-visited-file-name lsp-current-buffer run-with-idle-timer 0.0 make-closure #[0 "\302\300!\205+\303\300\304\"\211\203\303\300\305\"\211\306\307\300\"!)\202)r\300q\210\310\300!\210\311\300!)\262\207" [V0 lsp--buffer-workspaces lsp-buffer-live-p plist-get :with-current-buffer :workspaces make-closure #[0 "\301\300!\210\302\300!\207" [V0 lsp--on-change-debounce lsp--on-idle] 2] lsp--on-change-debounce lsp--on-idle] 5] lsp-unconfig-buffer advice--remove-function advice--buffer-local eldoc-documentation-function advice--set-buffer-local remove-hook :cleanup cancel-timer lsp-on-idle-hook lsp--document-links lsp--document-highlight lsp--remove-overlays lsp-highlight lsp-links make-local-variable run-hooks lsp-managed-mode-hook lsp-managed-mode-on-hook lsp-managed-mode-off-hook called-interactively-p any message "Lsp-Managed mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 9 (#$ . 226303) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar lsp-managed-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\207" [lsp-managed-mode-map lsp-managed-mode-hook variable-documentation put "Hook run after entering or leaving `lsp-managed-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode lsp-managed-mode boundp] 6) #@44 Configure LSP features for current buffer. (defalias 'lsp-configure-buffer #[0 "\206\n \205\n C\306\n\203s \203\"\307\310!\203\"\311\312\313\306\314$\210\f\203/\307\315!\203/\304 \210 \203@\307\316!\203@\317\320!\210\321\203R\307\322!\203R\311\323\324\306\314$\210\203d\307\325!\203d\311\323\326\306\314$\210\203s\327\330!\203s\331\332!\210\333\334!*\207" [lsp--buffer-workspaces lsp--cur-workspace lsp-auto-configure lsp-enable-text-document-color lsp-enable-imenu lsp-enable-indentation nil lsp-feature\? "textDocument/documentColor" add-hook lsp-on-change-hook lsp--document-color t "textDocument/documentSymbol" "textDocument/rangeFormatting" make-local-variable indent-region-function lsp-format-region "textDocument/documentHighlight" lsp-on-idle-hook lsp--document-highlight "textDocument/documentLink" lsp--document-links functionp dap-mode dap-auto-configure-mode 1 run-hooks lsp-configure-hook lsp-enable-symbol-highlighting lsp-enable-links lsp-enable-dap-auto-configure] 5 (#$ . 230513)]) #@38 Unconfigure LSP features for buffer. (defalias 'lsp-unconfig-buffer #[0 "\301\302!\210\303\304!\210\305=\203\306\300!\210\307\310\311\312\313#\210\310\314\315\313#\210\310\314\316\313#\207" [indent-region-function run-hooks lsp-unconfigure-hook lsp--remove-overlays lsp-color lsp-format-region make-local-variable nil remove-hook lsp-on-change-hook lsp--document-color t lsp-on-idle-hook lsp--document-highlight lsp--document-links] 4 (#$ . 231546)]) (defalias 'lsp--buffer-content #[0 "\203\212\301\302!\206\303ed\")\207\304\214~\210\212\301\302!\206!\303ed\"+\207" [lsp--already-widened lsp-virtual-buffer-call :buffer-string buffer-substring-no-properties t] 3]) #@27 'document/didOpen' event. (defalias 'lsp--text-document-did-open #[0 "\304\305!\210\206 \306\307 \310 !\n>\204\311\312\313 D\"\210 \211\314\314H\315\"\203,\211\202/B\262I\266\316\317\320\321\322 \323\324 \325\326\327 \257D\"\210\330\331!\210\304\332!\210 \211\205f\310!\n>\204c\311\312\313D\"\210\211\333H\262\211\205\255\310! >\204{\311\312\334D\"\210\211\335H\211\203\205\211 \210\210\336\337\310! >\204\227\311\312\334D\"\210\340H\"\211\205\242\341!\262\211\205\253\304!\262\207" [lsp--cur-version lsp--cur-workspace cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags run-hooks lsp-before-open-hook 0 lsp-current-buffer type-of signal wrong-type-argument lsp--workspace 9 memql lsp-notify "textDocument/didOpen" :textDocument :uri lsp--buffer-uri :languageId lsp-buffer-language :version :text lsp--buffer-content lsp-managed-mode 1 lsp-after-open-hook 5 lsp--client 28 format "lsp-%s-after-open-hook" 15 intern-soft] 11 (#$ . 232229)]) #@30 Make TextDocumentIdentifier. (defalias 'lsp--text-document-identifier #[0 "\300\301 D\207" [:uri lsp--buffer-uri] 2 (#$ . 233217)]) #@39 Make VersionedTextDocumentIdentifier. (defalias 'lsp--versioned-text-document-identifier #[0 "\301\302 \303#\207" [lsp--cur-version plist-put lsp--text-document-identifier :version] 4 (#$ . 233355)]) #@24 (fn &optional POINT) (defalias 'lsp--cur-line #[256 "\300!S\207" [line-number-at-pos] 3 (#$ . 233562)]) #@47 Make a Position object for the current point. (defalias 'lsp--cur-position #[0 "\301\302!\206&\203\212\303\304 \305`\306 ZF)\207\307\214~\210\212\303\304 \305`\306 ZF+\207" [lsp--already-widened lsp-virtual-buffer-call :cur-position :line lsp--cur-line :character line-beginning-position t] 5 (#$ . 233675)]) #@40 Convert POINT to Position. (fn POINT) (defalias 'lsp--point-to-position #[257 "\203\f\212\211b\210\301 )\207\302\214~\210\212\211b\210\301 +\207" [lsp--already-widened lsp--cur-position t] 2 (#$ . 233995)]) #@53 Make Range body from START and END. (fn START END) (defalias 'lsp--range #[514 "\300\301F\207" [:start :end] 6 (#$ . 234212)]) #@59 Make Range object for the current region. (fn START END) (defalias 'lsp--region-to-range #[514 "\300\301!\301!\"\207" [lsp--range lsp--point-to-position] 6 (#$ . 234348)]) #@40 The active region or the current line. (defalias 'lsp--region-or-line #[0 "\300 \203\f\301\302 \303 \"\207\301\304 \305 \"\207" [use-region-p lsp--region-to-range region-beginning region-end point-at-bol point-at-eol] 3 (#$ . 234529)]) #@78 Verify that DOCUMENT-CHANGES have the proper version. (fn DOCUMENT-CHANGES) (defalias 'lsp--check-document-changes-version #[257 "\300\301\"?\205 \302\303!\207" [seq-every-p #[257 "\301\302\"\211?\206(\303\304!!\305!r\306!q\210\211?\206%\211\307U\206%\211\232)\266\202\207" [lsp--cur-version gethash "textDocument" lsp--uri-to-path lsp:versioned-text-document-identifier-uri lsp:versioned-text-document-identifier-version\? find-file-noselect 0] 6 "\n\n(fn INPUT0)"] error "Document changes cannot be applied"] 4 (#$ . 234772)]) #@152 Apply the WorkspaceEdit object WORKSPACE-EDIT. OPERATION is symbol representing the source of this text edit. (fn WORKSPACE-EDIT &optional OPERATION) (defalias 'lsp--apply-workspace-edit #[513 "\300\301\"\300\302\"\303!\211\203,\304!\210\305\306\307\"\310\311\"\"\210\305\306\312\"\310\313\"\"\207\314\306\315\"\"\207" [gethash "documentChanges" "changes" seq-reverse lsp--check-document-changes-version seq-do make-closure #[257 "\301\300\"\207" [V0 lsp--apply-text-document-edit] 4 "\n\n(fn CHANGE)"] seq-filter #[257 "\300\301\"\211?\206\f\211\302\232\207" [gethash "kind" "edit"] 4 "\n\n(fn INPUT0)"] #[257 "\301\300\"\207" [V0 lsp--apply-text-document-edit] 4 "\n\n(fn CHANGE)"] #[257 "\300\301\"\211?\206\f\211\302\232?\207" [gethash "kind" "edit"] 4 "\n\n(fn INPUT0)"] lsp-map #[514 "r\301\302!!q\210\303\300\")\207" [V0 find-file-noselect lsp--uri-to-path lsp--apply-text-edits] 5 "\n\n(fn URI TEXT-EDITS)"]] 11 (#$ . 235319)]) #@120 Execute BODY with FILE as a context. Need to handle the case when FILE indicates virtual buffer. (fn FILE &rest BODY) (defalias 'lsp-with-filename '(macro . #[385 "\300\301\302\303\304FDC\305\301BBBBB\207" [if-let lsp--virtual-buffer get-text-property 0 'lsp-virtual-buffer lsp-with-current-buffer] 8 (#$ . 236286)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put lsp-with-filename lisp-indent-function 1 put edebug-form-spec t] 5) #@492 Apply the TextDocumentEdit object EDIT. OPERATION is symbol representing the source of this text edit. If the file is not being visited by any buffer, it is opened with `find-file-noselect'. Because lsp-mode does not store previous document versions, the edit is only applied if the version of the textDocument matches the version of the corresponding file. interface TextDocumentEdit { textDocument: VersionedTextDocumentIdentifier; edits: TextEdit[]; } (fn EDIT &optional OPERATION) (defalias 'lsp--apply-text-document-edit #[513 "\303!\211\304\267\202\315\305\306\"\305\307\"\310!\311\312!\313\"\210\314!\210\315!\205*\316\317\320#\207\305\306\"\321\305\307\"!\205@\305\322\305\307\"\"\323\310!\"\207\305\324\"\305\325\"\321\305\307\"!\205a\305\326\305\307\"\"\310!\310!\327!\211\203\220\330\331\"\211\203\204\330\332\"\211\333!\210)\210\202\220rq\210\334 \210\335 \210)\210\311\312!\313\"\210\336#\210\211\205\314\330\331\"\211\203\271\330\332\"\211\337\340\"!)\202\312rq\210\341\320!\210\320\342!\210\343 )\262\207\310\344\345!!!\330\327!\331\"\211\203\362\330\327!\332\"\211\337\346$!)\207r\327!q\210\347\350\351#\211\203.\330\n\331\"\211\203\330\n\332\"\211\337\352#!)\202)r\nq\210\353\354!\")\262\2025\353\354!\"*\207" [lsp--buffer-workspaces lsp-buffer-uri lsp--virtual-buffer lsp:edit-kind #s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("create" 9 "delete" 43 "rename" 71)) gethash "uri" "options" lsp--uri-to-path mkdir f-dirname t f-touch lsp:create-file-options-overwrite\? f-write-text "" nil ht\? "recursive" f-delete "oldUri" "newUri" "overwrite" find-buffer-visiting plist-get :with-current-buffer :workspaces #[0 "\300 \210\301 \207" [save-buffer lsp--text-document-did-close] 1] save-buffer lsp--text-document-did-close rename-file make-closure #[0 "\302\303!\210\303\304\300!\210\305 \207" [V0 lsp-buffer-uri set-buffer-modified-p nil set-visited-file-name lsp] 2] set-buffer-modified-p set-visited-file-name lsp lsp:versioned-text-document-identifier-uri lsp:text-document-edit-text-document #[0 "\305\306\307\302#\211\2032\310 \311\"\211\203\"\310 \312\"\211\313\314\300\301#!)\202-r q\210\315\316\300!\301\")\262\2028\315\316\300!\301\")\207" [V0 V1 V2 lsp--virtual-buffer lsp--buffer-workspaces get-text-property 0 lsp-virtual-buffer plist-get :with-current-buffer :workspaces make-closure #[0 "\302\303\300!\301\"\207" [V0 V1 lsp--apply-text-edits lsp:text-document-edit-edits] 3] lsp--apply-text-edits lsp:text-document-edit-edits] 7] get-text-property 0 lsp-virtual-buffer #[0 "\302\303\300!\301\"\207" [V0 V1 lsp--apply-text-edits lsp:text-document-edit-edits] 3] lsp--apply-text-edits lsp:text-document-edit-edits] 15 (#$ . 236750)]) #@70 Return t if position LEFT is greater than RIGHT. (fn INPUT0 INPUT1) (defalias 'lsp--position-compare #[514 "\300\301\"\300\302\"\300\301\"\300\302\"U\203V\207V\207" [gethash "line" "character"] 8 (#$ . 239557)]) #@51 Returns if POINT is in RANGE. (fn INPUT0 INPUT1) (defalias 'lsp-point-in-range\? #[514 "\300\301\"\300\302\"\303\"\206\303\"?\207" [gethash "start" "end" lsp--position-compare] 8 (#$ . 239788)]) #@72 Return whether LEFT and RIGHT positions are equal. (fn INPUT0 INPUT1) (defalias 'lsp--position-equal #[514 "\300\301\"\300\302\"\300\301\"\300\302\"U\205U\207" [gethash "line" "character"] 8 (#$ . 239999)]) #@22 (fn INPUT0 INPUT1) (defalias 'lsp--text-edit-sort-predicate #[514 "\300\301\"\300\302\"\300\303\"\300\301\"\300\302\"\300\303\"\304\"\203$\305\"\207\305\"\207" [gethash "range" "start" "end" lsp--position-equal lsp--position-compare] 11 (#$ . 240223)]) #@77 Apply the edits described in the TextEdit object in TEXT-EDIT. (fn INPUT0) (defalias 'lsp--apply-text-edit #[257 "\211\300\301\"\302\303\304\"!\302\303\305\"!\300\306\"\307\310\311\206\311#\262\312\"\210b\210|\210\211c\207" [gethash "range" lsp--position-to-point lsp-get :start :end "newText" s-replace " " "" lsp:set-text-edit-new-text] 10 (#$ . 240497)]) #@15 (fn INPUT0) (defalias 'lsp--fix-point #[257 "\211\300\301\"\300\302\"\303\304]\"\210\305\304]\"\210\207" [gethash "character" "line" lsp:set-position-line 0 lsp:set-position-character] 9 (#$ . 240875)]) #@120 Apply the edits described in the TextEdit object in TEXT-EDIT. The method uses `replace-buffer-contents'. (fn INPUT0) (defalias 'lsp--apply-text-edit-replace-buffer-contents #[257 "\211\301\302\"\301\303\"\301\304\"\301\305\"\306\307\310\206\310#\262\311\"\210p\312\313\314\315!\316\315!$!\211A\262\242\317\320\321\"r\211q\210\322\323\"\216c\210prq\210\212\214}\210\321Z\324\325#\210\326!\210\324\327\211\fG\\$)\266\202+\262*\207" [inhibit-modification-hooks gethash "range" "start" "end" "newText" s-replace " " "" lsp:set-text-edit-new-text lsp--range-to-region lsp-make-range :start lsp--fix-point :end generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] run-hook-with-args before-change-functions replace-buffer-contents after-change-functions] 19 (#$ . 241094)]) #@57 Convert LSP SNIPPET to yasnippet snippet. (fn SNIPPET) (defalias 'lsp--to-yasnippet-snippet #[257 "\300\301\302\303\211\304&\207" [replace-regexp-in-string "\\(?:\\`\\|[^$\\]\\)\\([`{]\\)" "\\\\\\1" nil 1] 8 (#$ . 241965)]) #@83 Enable relative indentation when insert texts, snippets ... from language server. (defvar lsp-enable-relative-indentation nil (#$ . 242198)) (make-variable-buffer-local 'lsp-enable-relative-indentation) #@188 Wrapper of `yas-expand-snippet' with all of it arguments. The snippet will be convert to LSP style and indent according to LSP server result. (fn SNIPPET &optional START END EXPAND-ENV) (defalias 'lsp--expand-snippet #[1025 "\304\305\306\305\307\310!$,\207" [inhibit-field-text-motion yas-wrap-around-region yas-indent-line yas-also-auto-indent-first-line t nil none yas-expand-snippet lsp--to-yasnippet-snippet] 9 (#$ . 242408)]) #@410 Indent from START to END based on INSERT-TEXT-MODE? value. - When INSERT-TEXT-MODE? is provided - if it's `lsp/insert-text-mode-as-it', do no editor indentation. - if it's `lsp/insert-text-mode-adjust-indentation', adjust leading whitespaces to match the line where text is inserted. - When it's not provided, using `indent-line-function' for each line. (fn START END &optional INSERT-TEXT-MODE\=\?) (defalias 'lsp--indent-lines #[770 "\212b\210\304 \212b\210\305 )\232\203\306\202/ \232\204'\n\204'\307\310!\203.\311\312\"\202/ b\210\313y\314=\205G\304 X\205G \210\2023)\266\202)\207" [lsp/insert-text-mode-as-it lsp/insert-text-mode-adjust-indentation lsp-enable-relative-indentation indent-line-function line-number-at-pos current-indentation ignore derived-mode-p org-mode make-closure #[0 "\212\301 \210\300j)\207" [V0 beginning-of-line] 1] 1 0] 8 (#$ . 242855)]) #@148 Apply the EDITS described in the TextEdit[] object. OPERATION is symbol representing the source of this text edit. (fn EDITS &optional OPERATION) (defalias 'lsp--apply-text-edits #[513 "\305!?\205f\306 \307\211\307C\310\311#\216\312!\210\313\314!\210\306 G\315\316p#\307\317!\210\320\321#\321C\f\204A\322\202B\323\310\324#\216\325\310\326%\327\330\237\"\")\266\207\331\240\210,\266\205\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit lsp--virtual-buffer seq-empty-p prepare-change-group nil make-closure #[0 "\301\242\203 \302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group run-hooks lsp-before-apply-edits-hook format "Applying %s edits to `%s' ..." lsp--info make-progress-reporter 0 lsp--apply-text-edit-replace-buffer-contents lsp--apply-text-edit #[0 "\302\300!\210\303\301!\207" [V0 V1 undo-amalgamate-change-group progress-reporter-done] 2] mapc #[257 "\301\302\211\242T\240\305\247\203@Y\205\306#\266\303!\210\307!\203[\310\311\312\313\"\314\"!\211\203Z\312\315\"\211\203Y\312\316\"\211\203X\f=\203XG\\b\210\317`\"\210\320`#\210\210\210\210\321\322\300\"\207" [V0 V1 V2 V3 lsp/insert-text-format-snippet nil progress-reporter-do-update lsp:snippet-text-edit-insert-text-format\? lsp--position-to-point lsp-get gethash "range" :start "insertTextFormat" "newText" lsp--indent-lines lsp--expand-snippet run-hook-with-args lsp-after-apply-edits-hook] 8 "\n\n(fn EDIT)"] seq-sort lsp--text-edit-sort-predicate t] 21 (#$ . 243760)]) #@112 Create (handler cleanup-fn) for applying text edits in async request. Only works when mode is 'tick or 'alive. (defalias 'lsp--create-apply-text-edits-handlers #[0 "\300C\301\302\"\303\304\300\305$\210\301\306\"\301\307\"D\207" [nil make-closure #[385 "\300\211\242\203 \300\242^\202\240\207" [V0] 5 "\n\n(fn START &rest _)"] add-hook before-change-functions t #[257 "\300\242\203\301\302\303\300\"\"\203\304\305!\207\306\307\"\207" [V0 seq-find make-closure #[257 "\301\302\303\304\"\305\"!\211\300\242V\207" [V0 lsp--position-to-point lsp-get gethash "range" :end] 6 "\n\n(fn INPUT0)"] lsp--warn "TextEdits will not be applied since document has been modified before of them." lsp--apply-text-edits completion-cleanup] 5 "\n\n(fn EDITS)"] #[0 "\301\302\300\303#\207" [V0 remove-hook before-change-functions t] 4]] 7 (#$ . 245340)]) #@114 Get the value of capability CAP. If CAPABILITIES is non-nil, use them instead. (fn CAP &optional CAPABILITIES) (defalias 'lsp--capability #[513 ";\203\f\300\301P!\262\302\206\303 \"\207" [intern ":" lsp-get lsp--server-capabilities] 5 (#$ . 246197)]) #@65 Check whether there is workspace providing METHOD. (fn METHOD) (defalias 'lsp--registered-capability #[257 "\301\302 \303\301\211\203A\211A\262\242\262\262T\262\304\305\306\"\307!>\204/\310\311\312D\"\210\313H\"\211\203=\211B\262\210\202\266\211\237\262@\207" [cl-struct-lsp--workspace-tags nil lsp-workspaces 0 seq-find make-closure #[257 "\302! >\204\303\304\305D\"\210\211\306H\300\232\207" [V0 cl-struct-lsp--registered-capability-tags type-of signal wrong-type-argument lsp--registered-capability 2] 5 "\n\n(fn REG)"] type-of signal wrong-type-argument lsp--workspace 3] 12 (#$ . 246464)]) #@121 Store the positions from the `lsp-before-change' function call, for validation and use in the `lsp-on-change' function. (defvar lsp--before-change-vals nil (#$ . 247096)) (make-variable-buffer-local 'lsp--before-change-vals) #@103 Make a TextDocumentContentChangeEvent body for START to END, of length LENGTH. (fn START END LENGTH) (defalias 'lsp--text-document-content-change-event #[771 "\211\301U\203\302\303\304!\304!\"\305\301\306\307\"\257\207=\203>\310\"\203;\302\303\304!\311\312\"\"\305\313BBBB\207\314 \207\310\"\203[\302\303\304!\311\312\"\"\305\306\307\"\257\207\314 \207" [lsp--before-change-vals 0 :range lsp--range lsp--point-to-position :rangeLength :text buffer-substring-no-properties lsp--bracketed-change-p plist-get :end-pos (:text "") lsp--full-change-event] 11 (#$ . 247328)]) #@137 If the before and after positions are the same, and the length is the size of the start range, we are probably good. (fn START LENGTH) (defalias 'lsp--bracketed-change-p #[514 "\301\302\"\301\303\"=\205Z=\207" [lsp--before-change-vals plist-get :end :start] 7 (#$ . 247935)]) (defalias 'lsp--full-change-event #[0 "\300\301 D\207" [:text lsp--buffer-content] 2]) #@88 Executed before a file is changed. Added to `before-change-functions'. (fn START END) (defalias 'lsp-before-change #[514 "\302 \303\304\"\216\203\212\305\306\307\310!\257\211)\2021\311\214~\210\212\305\306\307\310!\257\211+)\207" [lsp--already-widened lsp--before-change-vals match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] :start :end :end-pos lsp--point-to-position t] 10 (#$ . 248314)]) (defalias 'lsp--flush-delayed-changes #[0 "\303 \203\n\304 !\210\305\306\n\237\307\")\207" [inhibit-quit lsp--delay-timer lsp--delayed-requests t cancel-timer mapc #[257 "\211\211A\262\242\211A\262\242\211A\262\242@rq\210\301\302\303\304\305!F\"*\207" [lsp--cur-workspace lsp-notify "textDocument/didChange" :textDocument :contentChanges vector] 13 "\n\n(fn INPUT0)"] nil] 4]) #@18 (fn WORKSPACE) (defalias 'lsp--workspace-sync-method #[257 "\301\302!>\204\303\304\305D\"\210\306H!\307!\203\310!\207\207" [cl-struct-lsp--workspace-tags lsp:server-capabilities-text-document-sync\? type-of signal wrong-type-argument lsp--workspace 2 lsp-text-document-sync-options\? lsp:text-document-sync-options-change\?] 6 (#$ . 249156)]) #@126 Executed when a file is changed. Added to `after-change-functions'. (fn START END LENGTH &optional CONTENT-CHANGE-EVENT-FN) (defalias 'lsp-on-change #[1027 "\306 \307\310\"\216\311 ?\205F\nT\312\307\313%\314 \"\210 \203)\315 !\210\316\f\317\320#\321\322!\210\323p!\210\317\211\205F\324\325\314 \"*\207" [inhibit-quit revert-buffer-in-progress-p lsp--cur-version lsp--delay-timer lsp-debounce-full-sync-notifications-interval lsp--signature-last-index match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] t mapc #[257 "\f\206\306!\211\307\267\202S \203\"p\310 \311 F\312\313\"B\211\207\314\315\316\317\311 !\320\310 F\")\207\314\315\320\310 \316\317\303\203I\303\300\301\302#\202N\321\300\301\302#!F\")\207\322\207" [V0 V1 V2 V3 lsp-document-sync-method lsp-debounce-full-sync-notifications lsp--workspace-sync-method #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (1 13 2 51)) lsp--versioned-text-document-identifier lsp--full-change-event -remove #[257 "\211A@p\232\207" [] 4 "\n\n(fn INPUT0)"] lsp-notify "textDocument/didChange" :contentChanges vector :textDocument lsp--text-document-content-change-event nil lsp--delayed-requests lsp--cur-workspace] 12 "\n\n(fn WORKSPACE)"] lsp-workspaces cancel-timer run-with-idle-timer nil lsp--flush-delayed-changes lsp--remove-overlays lsp-highlight lsp--after-change mapcar #[257 "\211\302! >\204\303\304\305D\"\210\306H\307\310\311 !\"\262)\207" [lsp--cur-workspace cl-struct-lsp--workspace-tags type-of signal wrong-type-argument lsp--workspace 20 remhash lsp--fix-path-casing buffer-file-name] 5 "\n\n(fn IT)"] lsp--signature-last lsp-diagnostic-clean-after-change] 13 (#$ . 249518)]) #@18 Flag to control. (defvar lsp-inhibit-lsp-hooks nil (#$ . 251272)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\307\310\311&\207" [custom-declare-variable lsp-on-change-hook funcall function #[0 "\300\207" [nil] 1] "Hooks to run when buffer has changed." :type hook :group lsp-mode lsp-idle-delay #[0 "\300\207" [0.5] 1] "Debounce interval for `after-change-functions'." number lsp-on-idle-hook #[0 "\300\207" [nil] 1] "Hooks to run after `lsp-idle-delay'."] 8) #@15 (fn BUFFER) (defalias 'lsp--idle-reschedule #[257 "\203\302!\210\303 \304\305$\211\207" [lsp--on-idle-timer lsp-idle-delay cancel-timer run-with-idle-timer nil lsp--on-idle] 6 (#$ . 251834)]) (defalias 'lsp--post-command #[0 "\300 \210\301p!\207" [lsp--cleanup-highlights-if-needed lsp--idle-reschedule] 2]) #@39 Start post command loop. (fn BUFFER) (defalias 'lsp--on-idle #[257 "\302!\205\211p\232\205?\205 \205\303\304!\207" [lsp-inhibit-lsp-hooks lsp-managed-mode buffer-live-p run-hooks lsp-on-idle-hook] 3 (#$ . 252156)]) #@15 (fn BUFFER) (defalias 'lsp--on-change-debounce #[257 "\302!\205\211p\232\205?\205 \205\303\304!\207" [lsp-inhibit-lsp-hooks lsp-managed-mode buffer-live-p run-hooks lsp-on-change-hook] 3 (#$ . 252388)]) #@15 (fn BUFFER) (defalias 'lsp--after-change #[257 "\203\302!\210\303 \304\305$\306!\207" [lsp--on-change-timer lsp-idle-delay cancel-timer run-with-idle-timer nil lsp--on-change-debounce lsp--idle-reschedule] 6 (#$ . 252609)]) #@106 Self insert handling. Applies on type formatting. (fn FIRST-TRIGGER-CHARACTERS MORE-TRIGGER-CHARACTERS) (defalias 'lsp--on-type-formatting #[514 "\303!=\204\304\305\303$\2058\306\307\310\311\312 \313\314\315\316 !J\317\n\203(\320\202)\321$\322\323 !\324\325 &\326\327\330%\207" [last-command-event major-mode indent-tabs-mode string-to-char cl-find :key lsp-request-async "textDocument/onTypeFormatting" lsp-make-document-on-type-formatting-params :text-document lsp--text-document-identifier :options lsp-make-formatting-options :tab-size lsp--get-indent-width :insert-spaces :json-false t :ch char-to-string :position lsp--cur-position #[257 "\300\301\"\207" [lsp--apply-text-edits format] 4 "\n\n(fn DATA)"] :mode tick] 14 (#$ . 252849)]) (defalias 'lsp--document-links #[0 "\300\301!\205\302\301\303\304 D\305\306\307%\207" [lsp-feature\? "textDocument/documentLink" lsp-request-async :textDocument lsp--text-document-identifier #[257 "\300\301!\210\302\303\"\207" [lsp--remove-overlays lsp-link seq-do #[257 "\211\300\301\"\300\302\"\300\303\"\304\305!\305!\306\307!\310\311 \312\313\314#\210\312\315\314#\210\211\262\316\317&\320\321\322#\210\207" [gethash "range" "start" "end" make-button lsp--position-to-point action lsp--document-link-keymap keymap make-sparse-keymap define-key [M-return] push-button [mouse-2] help-echo "mouse-2, M-RET: Visit this link" overlay-put lsp-link t] 16 "\n\n(fn INPUT0)"]] 4 "\n\n(fn LINKS)"] :mode unchanged] 6]) #@12 (fn URL) (defalias 'lsp--document-link-handle-target #[257 "\301\302!!\303!>\204\304\305\306D\"\210\211\307H\211\310\267\202U\311\312!!\210\313\314\"A\211\205P\211A\262\242\211\205N@\211\205L\315\316\317\320!S\321\320!S$!b\262\262\207\322!\207\211\323!\211\203a\211!\207\304\324C\"\207" [cl-struct-url-tags url-generic-parse-url url-unhex-string type-of signal wrong-type-argument url 1 #s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("file" 29 "https" 81 "http" 81)) find-file lsp--uri-to-path s-match "#\\([[:digit:]]+\\),\\([[:digit:]]+\\)" lsp--position-to-point lsp-make-position :character string-to-number :line browse-url lsp--get-uri-handler lsp-file-scheme-not-supported] 13 (#$ . 254339)]) #@15 (fn INPUT0) (defalias 'lsp--document-link-keymap #[257 "\211\300\301\"\211\203\302\303\"\207\302\304\"\207" [gethash "target" make-closure #[257 "\301\300!\207" [V0 lsp--document-link-handle-target] 3 "\n\n(fn _)" nil] #[257 "\301\302\303!!\205 \304\305\300\306#\207" [V0 lsp:document-link-registration-options-resolve-provider\? lsp--capability :documentLinkProvider lsp-request-async "documentLink/resolve" #[257 "\300\301\"\302!\207" [gethash "target" lsp--document-link-handle-target] 4 "\n\n(fn INPUT0)"]] 5 "\n\n(fn _)" nil]] 6 (#$ . 255115)]) #@44 Get language corresponding current buffer. (defalias 'lsp-buffer-language #[0 "\302\303\"A\206\304\305\306 #\207" [lsp-language-id-configuration major-mode -first #[257 "\211\211A\262\242;\203\301\302 \"\203\207=\205\211\207" [major-mode s-matches\? buffer-file-name] 7 "\n\n(fn INPUT0)"] lsp-warn "Unable to calculate the languageId for buffer `%s'. Take a look at `lsp-language-id-configuration'. The `major-mode' is %s" buffer-name] 4 (#$ . 255681)]) #@149 Returns language activation function. The function will return t when the `lsp-buffer-language' returns one of the LANGUAGES. (fn &rest LANGUAGES) (defalias 'lsp-activate-on #[128 "\300\301\"\207" [make-closure #[514 "\301\300\302 \"\207" [V0 -contains\? lsp-buffer-language] 5 "\n\n(fn FILE-NAME MODE)"]] 4 (#$ . 256159)]) #@76 Find the workspace root for the current file or PATH. (fn &optional PATH) (defalias 'lsp-workspace-root #[256 "\211\206\301 \211\205h\302!\211\205f\303\304\305\306 \307!>\204%\310\311\306D\"\210\211\312H\262\313\305\211\203_\211A\262\242\262\262T\262\314 \"\203-\315 \"\204W\232\203-B\262\202-\266\211\237\262\"\262\207" [cl-struct-lsp-session-tags buffer-file-name lsp-f-canonical -max-by #[514 "GGV\207" [] 4 "\n\n(fn IT OTHER)"] nil lsp-session type-of signal wrong-type-argument 1 0 lsp--files-same-host lsp-f-ancestor-of\?] 13 (#$ . 256491)]) #@65 Executed when a file is reverted. Added to `after-revert-hook'. (defalias 'lsp-on-revert #[0 "\301 \302\303\304\211#)\207" [revert-buffer-in-progress-p buffer-size nil lsp-on-change 0] 5 (#$ . 257084)]) #@218 Executed when the file is closed, added to `kill-buffer-hook'. If KEEP-WORKSPACE-ALIVE is non-nil, do not shutdown the workspace if it's closing the last buffer in the workspace. (fn &optional KEEP-WORKSPACE-ALIVE) (defalias 'lsp--text-document-did-close #[256 "\300\301\302\"\303 \"\207" [mapcar make-closure #[257 "\211\304 \305 !\n>\204\306\307\310 D\"\210 \211\311\312\311H\"I\266\3131/\314\315\316\317 D\"0\210\2025\320\321\"\266 ?\205W\300?\205W\305 !\n>\204N\306\307\310 D\"\210 \311H?\205W\322 )\207" [V0 lsp--cur-workspace cl-struct-lsp--workspace-tags lsp-keep-workspace-alive lsp-current-buffer type-of signal wrong-type-argument lsp--workspace 9 delq (debug error) lsp-notify "textDocument/didClose" :textDocument lsp--text-document-identifier message "Error sending didClose notification in ‘lsp--text-document-did-close’: %S" lsp--shutdown-workspace] 9 "\n\n(fn IT)"] lsp-workspaces] 5 (#$ . 257296)]) #@15 (fn REASON) (defalias 'lsp--will-save-text-document-params #[257 "\300\301 \302F\207" [:textDocument lsp--text-document-identifier :reason] 5 (#$ . 258239)]) #@22 Before save handler. (defalias 'lsp--before-save #[0 "\30212\303\304!\305 \203\306\307\"\210\310 \205.\205.\311\3121+\313\314\315\"\316\"0\202-\210\317)\2620\207\320\321\"\210\317\207" [lsp-before-save-edits lsp-response-timeout (debug error) lsp--will-save-text-document-params 1 lsp--send-will-save-p lsp-notify "textDocument/willSave" lsp--send-will-save-wait-until-p 0.1 (error) lsp--apply-text-edits lsp-request "textDocument/willSaveWaitUntil" before-save nil message "Error in ‘lsp--before-save’: %S"] 5 (#$ . 258406)]) #@24 Handler for auto-save. (defalias 'lsp--on-auto-save #[0 "\300 \205\3011\302\303\304\305!\"0\207\306\307\"\210\310\262\207" [lsp--send-will-save-p (debug error) lsp-notify "textDocument/willSave" lsp--will-save-text-document-params 2 message "Error in ‘lsp--on-auto-save’: %S" nil] 4 (#$ . 258956)]) #@64 Executed when the file is closed, added to `after-save-hook''. (defalias 'lsp--text-document-did-save #[0 "\300 \205$\3011\302\303\304\305 \306 \205\307\310 DBB\"0\207\311\312\"\210\313\262\207" [lsp--send-did-save-p (debug error) lsp-notify "textDocument/didSave" :textDocument lsp--versioned-text-document-identifier lsp--save-include-text-p :text lsp--buffer-content message "Error on ‘lsp--text-document-did-save: %S’" nil] 6 (#$ . 259271)]) #@232 Make TextDocumentPositionParams for the current point in the current document. If IDENTIFIER and POSITION are non-nil, they will be used as the document identifier and the position respectively. (fn &optional IDENTIFIER POSITION) (defalias 'lsp--text-document-position-params #[512 "\300\206\301 \302\206\303 F\207" [:textDocument lsp--text-document-identifier :position lsp--cur-position] 6 (#$ . 259735)]) #@28 Return buffer diagnostics. (defalias 'lsp--get-buffer-diagnostics #[0 "\301\302\303\"\206\f\304\305 !\306\307!\"\207" [lsp--virtual-buffer gethash plist-get :buffer-file-name lsp--fix-path-casing buffer-file-name lsp-diagnostics t] 4 (#$ . 260156)]) #@56 Return any diagnostics that apply to the current line. (defalias 'lsp-cur-line-diagnostics #[0 "\300 \301\211\302\"\303\"\301\211\304\"\303\"\305\306\307\310#\311 \"\312\"\207" [lsp--region-or-line plist-get :start :line :end cl-coerce -filter make-closure #[257 "\302\303\302\304\302\305\"\"\"\211\300Y\205\211\301X\207" [V0 V1 gethash "line" "start" "range"] 8 "\n\n(fn INPUT0)"] lsp--get-buffer-diagnostics vector] 9 (#$ . 260414)]) (defalias 'lsp--cur-line-diagnotics 'lsp-cur-line-diagnostics) #@88 Return the line pointed to by POS (a Position object) in the current buffer. (fn POS) (defalias 'lsp--extract-line-from-buffer #[257 "\301!\302\212\211b\210\303 \304 {*\207" [inhibit-field-text-motion lsp--position-to-point t line-beginning-position line-end-position] 4 (#$ . 260927)]) #@66 Return a xref-item from a RANGE in FILENAME. (fn INPUT0 INPUT1) (defalias 'lsp--xref-make-item #[514 "\300\301\"\300\302\"\300\303\"\300\304\"\300\302\"\305!\211G\306^\307]^\307]\310\311%\210\312\2064\313\n\314 T!\315 !#\"\207" [gethash "start" "character" "line" "end" lsp--extract-line-from-buffer add-face-text-property 0 highlight t xref-make xref-make-file-location lsp-translate-line lsp-translate-column] 17 (#$ . 261223)]) #@12 (fn LOC) (defalias 'lsp--location-uri #[257 "\300!\203\n\301!\207\302!\207" [lsp-location\? lsp:location-uri lsp:location-link-target-uri] 3 (#$ . 261683)]) #@30 Go to location. (fn INPUT0) (defalias 'lsp-goto-location #[257 "\211\300\301\"\300\302\300\303\"\"\304!\305!\203!r\306!q\210\307!b)\207\310\311\"\207" [gethash "uri" "start" "range" lsp--uri-to-path f-exists\? find-file lsp--position-to-point error "There is no file %s"] 8 (#$ . 261852)]) #@12 (fn LOC) (defalias 'lsp--location-range #[257 "\300!\203\n\301!\207\302!\207" [lsp-location\? lsp:location-range lsp:location-link-target-selection-range] 3 (#$ . 262157)]) #@138 Return a list of `xref-item' given LOCATIONS, which can be of type Location, LocationLink, Location[] or LocationLink[]. (fn LOCATIONS) (defalias 'lsp--locations-to-xref-items #[257 "\300!\203\301\302\"\303!\203C\211\304\305!\306\307#=?\262\262\203\300\211\304\305!\306\310#=?\262\262\203=\311\312\"\202\211\304\305!\306\313#=?\262\262\203\377\211\304\305!\306\314#=?\262\262\203>\211\304\305!\306\315#=?\262\262\203}\311\312\"\202\303!\204\207\312\202\304\305!\306\307#=?\262\262\203\370\304\305!\306\310#=?\262\262\203\262C\202\304\305!\306\313#=?\262\262\204\311\312\202\304\305!\306\314#=?\262\262\204\340\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204\312\202\304\305!\306\314#=?\262\262\204&\312\202\304\305!\306\315#=?\262\262\205C\202\303!\204H\312\202\304\305!\306\307#=?\262\262\203\271\304\305!\306\310#=?\262\262\203sC\202\304\305!\306\313#=?\262\262\204\212\312\202\304\305!\306\314#=?\262\262\204\241\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204\320\312\202\304\305!\306\314#=?\262\262\204\347\312\202\304\305!\306\315#=?\262\262\205C\202\303!\204 \312\202\304\305!\306\307#=?\262\262\203z\304\305!\306\310#=?\262\262\2034C\202\304\305!\306\313#=?\262\262\204K\312\202\304\305!\306\314#=?\262\262\204b\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204\221\312\202\304\305!\306\314#=?\262\262\204\250\312\202\304\305!\306\315#=?\262\262\205C\202\211\304\305!\306\313#=?\262\262\203\202\211\304\305!\306\314#=?\262\262\203\301\211\304\305!\306\315#=?\262\262\203\311\312\"\202\303!\204\n\312\202\304\305!\306\307#=?\262\262\203{\304\305!\306\310#=?\262\262\2035C\202\304\305!\306\313#=?\262\262\204L\312\202\304\305!\306\314#=?\262\262\204c\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204\222\312\202\304\305!\306\314#=?\262\262\204\251\312\202\304\305!\306\315#=?\262\262\205C\202\303!\204\313\312\202\304\305!\306\307#=?\262\262\203<\304\305!\306\310#=?\262\262\203\366C\202\304\305!\306\313#=?\262\262\204 \312\202\304\305!\306\314#=?\262\262\204$\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204S\312\202\304\305!\306\314#=?\262\262\204j\312\202\304\305!\306\315#=?\262\262\205C\202\303!\204\214\312\202\304\305!\306\307#=?\262\262\203\375\304\305!\306\310#=?\262\262\203\267C\202\304\305!\306\313#=?\262\262\204\316\312\202\304\305!\306\314#=?\262\262\204\345\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204\312\202\304\305!\306\314#=?\262\262\204+\312\202\304\305!\306\315#=?\262\262\205C\202\303!\204M\312\202\304\305!\306\307#=?\262\262\203\276\304\305!\306\310#=?\262\262\203xC\202\304\305!\306\313#=?\262\262\204\217\312\202\304\305!\306\314#=?\262\262\204\246\312\202\304\305!\306\315#=?\262\262\205C\202\304\305!\306\313#=?\262\262\204\325\312\202\304\305!\306\314#=?\262\262\204\354\312\202\304\305!\306\315#=?\262\262\205C\262\202\304\303!\204\312\202\304\211\304\305!\306\307#=?\262\262\203\201\211\304\305!\306\310#=?\262\262\203;\211C\202\304\211\304\305!\306\313#=?\262\262\204R\312\202\304\211\304\305!\306\314#=?\262\262\204i\312\202\304\211\304\305!\306\315#=?\262\262\205\304\211C\202\304\211\304\305!\306\313#=?\262\262\204\230\312\202\304\211\304\305!\306\314#=?\262\262\204\257\312\202\304\211\304\305!\306\315#=?\262\262\205\304\211C\262\316\317\320\321\322\323\324\325 \"\"\"\"\207" [seqp seq--elt-safe 0 ht\? make-symbol "ht--not-found" gethash "range" "uri" append nil "targetSelectionRange" "targetUri" "targetRange" #[257 "\211\211A\262\242\3001U\3011L\302!\303\304\"\203)rq\210\305\")\266\202\202I\306!\205G\307\310\311\"r\211q\210\303\312\"\216\313!\210\305\"*\262\266\20200\2070\314\315\316!#\207\314\317\316!#\207" [(file-error) (error) find-buffer-visiting make-closure #[257 "\303\304\305\300#\211\2032\306 \307\"\211\203\"\306 \310\"\211\311\312\300#!)\202-r q\210\313\300\314!\")\262\2028\313\300\314!\")\207" [V0 lsp--virtual-buffer lsp--buffer-workspaces get-text-property 0 lsp-virtual-buffer plist-get :with-current-buffer :workspaces make-closure #[0 "\302\300\303\301!\"\207" [V0 V1 lsp--xref-make-item lsp--location-range] 4] lsp--xref-make-item lsp--location-range] 8 "\n\n(fn LOC)"] seq-map file-readable-p generate-new-buffer " *temp*" t #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents-literally lsp-warn "Failed to process xref entry for filename '%s': %s" error-message-string "Failed to process xref entry, file-error, '%s': %s"] 10 "\n\n(fn FILE-LOCS)"] apply nconc seq-map seq-group-by #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--location-uri (lsp--uri-to-path) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] seq-sort lsp--location-before-p] 11 (#$ . 262343)]) #@68 Sort first by file, then by line, then by column. (fn LEFT RIGHT) (defalias 'lsp--location-before-p #[514 "\300!\300!\230\204\231\207\301!\301!\302\303\"\302\303\"\304\"\207" [lsp--location-uri lsp--location-range gethash "start" lsp--position-compare] 11 (#$ . 267858)]) #@238 Make a ReferenceParam object. If TD-POSITION is non-nil, use it as TextDocumentPositionParams object instead. If INCLUDE-DECLARATION is non-nil, request the server to include declarations. (fn &optional TD-POSITION INCLUDE-DECLARATION) (defalias 'lsp--make-reference-params #[512 "\301\302\206 \303 \304\305\206D#)\207" [json-false :json-false plist-put lsp--text-document-position-params :context :includeDeclaration] 7 (#$ . 268152)]) #@52 Cancel request with ID in all workspaces. (fn ID) (defalias 'lsp--cancel-request #[257 "\300\301\302\"\303 \"\207" [mapcar make-closure #[257 "\211\304\300\305 !\n>\204\306\307\310 D\"\210 \311H\305! >\204%\306\307\312D\"\210\211\313H\262\"\210\314\315\316\300D\")\207" [V0 lsp--cur-workspace cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags remhash type-of signal wrong-type-argument lsp--workspace 5 lsp--client 8 lsp-notify "$/cancelRequest" :id] 8 "\n\n(fn IT)"] lsp-workspaces] 5 (#$ . 268603)]) #@28 `lsp-mode' eldoc function. (defalias 'lsp-eldoc-function #[0 "\301\302!\210\207" [eldoc-last-message run-hooks lsp-eldoc-hook] 2 (#$ . 269127)]) (defalias 'lsp--point-on-highlight\? #[0 "\300\301\302`!\"\207" [-some\? #[257 "\300\301\"\207" [overlay-get lsp-highlight] 4 "\n\n(fn OVERLAY)"] overlays-at] 4]) (defalias 'lsp--cleanup-highlights-if-needed #[0 "\205 \205\302 ?\205\303\304!\210\305\306\307!\207" [lsp-enable-symbol-highlighting lsp--have-document-highlights lsp--point-on-highlight\? lsp--remove-overlays lsp-highlight nil lsp-cancel-request-by-token :highlights] 2]) #@101 The bounds of the symbol from which `lsp--document-highlight' most recently requested highlights. (defvar lsp--symbol-bounds-of-last-highlight-invocation nil (#$ . 269725)) (make-variable-buffer-local 'lsp--symbol-bounds-of-last-highlight-invocation) (defalias 'lsp--document-highlight #[0 "\303\304!\305\306!\206?\206 \205\211\205\211\n\232?\205*\211\307\310\311 \312\313\314\315\316&\207" [lsp-enable-symbol-highlighting lsp--have-document-highlights lsp--symbol-bounds-of-last-highlight-invocation bounds-of-thing-at-point symbol looking-at "[[:space:]\n]" lsp-request-async "textDocument/documentHighlight" lsp--text-document-position-params lsp--document-highlight-callback :mode tick :cancel-token :highlights] 9]) #@69 Display the type signature and documentation of the thing at point. (defalias 'lsp-describe-thing-at-point #[0 "\305 \211\205\n\306\307\"\262\211\205\310!\262\211\205\311!\262\211\203l\211\312\232\204lr\313\314!q\210\315\211\223\210\316 B\317\nB\320 \321\314!\211\315\211\322\323\324\"!c\262rq\210\325\315\"\262)\326\327!\203f\327\"\202g\211)\266\203+\207\330\331!\207" [help-window-point-marker temp-buffer-window-setup-hook temp-buffer-window-show-hook help-window-old-frame standard-output lsp--text-document-position-params lsp--make-request "textDocument/hover" lsp--send-request lsp:hover-contents "" get-buffer-create "*lsp-help*" nil help-mode-setup help-mode-finish selected-frame temp-buffer-window-setup string-trim-right lsp--render-on-hover-content t temp-buffer-window-show functionp help-window-setup lsp--info "No content at point."] 8 (#$ . 270466) nil]) #@65 Return whether the current point is within BOUNDS. (fn BOUNDS) (defalias 'lsp--point-in-bounds-p #[257 "\211@`X\205 `AW\207" [] 3 (#$ . 271371)]) #@43 Get renderer for LANGUAGE. (fn LANGUAGE) (defalias 'lsp-get-renderer #[257 "\300\301\"\207" [make-closure #[257 "\301\300\"\207" [V0 lsp--render-string] 4 "\n\n(fn STR)"]] 4 (#$ . 271526)]) #@99 Setup the ‘markdown-mode’ in the frame. MODE is the mode used in the parent frame. (fn MODE) (defalias 'lsp--setup-markdown #[257 "\306\307!\210\310\"\211\203\211@\311\307B\"\210A\266\202\202\210\306\301!\210\312\306\302!\210\211\306\303!\210\312\313\314\315X\203H\316\317\"BB\262T\262\2021\211\237\266\202\320\fB\321\fB\322\fB\323\fB\324\325\326!\207" [lsp-custom-markup-modes markdown-fontify-code-blocks-natively markdown-fontify-code-block-default-mode markdown-hide-markup prettify-symbols-alist prettify-symbols-compose-predicate make-local-variable markdown-code-lang-modes alist-get add-to-list t 0 nil 255 format "&#x%02X;" ("<" . 60) (">" . 62) ("&" . 38) (" " . 32) #[771 "\300\207" [t] 4 "\n\n(fn START END MATCH)"] prettify-symbols-mode 1] 7 (#$ . 271725)]) #@63 Return visible buffer string. Stolen from `org-copy-visible'. (defalias 'lsp--buffer-string-visible #[0 "\301\302!edU\2043\303\304\"\203\305\304\306$\262\305\304\306${rq\210\211c\210)\262\266\202\307rq\210\310\311\312 \")\313!\210\207" [deactivate-mark generate-new-buffer " *temp*" get-char-property invisible next-single-char-property-change nil t s-chop-suffix "\n" buffer-string kill-buffer] 8 (#$ . 272549)]) #@72 Holds the major mode when fontification function is running. See #2588 (defvar lsp-buffer-major-mode nil (#$ . 272991)) #@18 Render markdown. (defalias 'lsp--render-markdown #[0 "\303eb\210\304\305\303\306#\203\307\310!\210\202\311\312!\203#\306\312 \210)\202&\313 \210\314\n!)\207" [markdown-enable-math view-inhibit-help-message lsp-buffer-major-mode nil re-search-forward "\\\\\\([]!#(-+./:[\\_`{|}-]\\)" t replace-match "\\1" fboundp gfm-view-mode gfm-mode lsp--setup-markdown] 4 (#$ . 273117)]) #@964 Replaced string regexp and function returning image. Each element should have the form (MODE . (PROPERTY-LIST...)). MODE (car) is function which is defined in `lsp-language-id-configuration'. Cdr should be list of PROPERTY-LIST. Each PROPERTY-LIST should have properties: :regexp Regexp which determines what string is relpaced to image. You should also get information of image, by parenthesis constructs. By default, all matched string is replaced to image, but you can change index of replaced string by keyword :replaced-index. :sexp Return image when evaluated. You can use information of regexp by using (match-beggining N), (match-end N) or (match-substring N). In addition, each can have property: :replaced-index Determine index which is used to replace regexp to image. The value means first argument of `match-beginning' and `match-end'. If omitted, interpreted as index 0. (defvar lsp--display-inline-image-alist '((lsp--render-markdown (:regexp "!\\[.*?\\](data:image/[a-zA-Z]+;base64,\\([A-Za-z0-9+/\n]+?=*?\\)\\(|[^)]+\\)?)" :sexp (create-image (base64-decode-string (buffer-substring-no-properties (match-beginning 1) (match-end 1))) nil t)))) (#$ . 273507)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable lsp-display-inline-image funcall function #[0 "\300\207" [t] 1] "Showing inline image or not." :group lsp-mode :type boolean] 8) #@45 Add image property if available. (fn MODE) (defalias 'lsp--display-inline-image #[257 "\211\236A\303 \205e \205e\211\304\211\211:\203b@\262\305\306\"\262\305\307\"\206(\310\262\311\304D\"\210\312\212eb\210\313\304\312#\203Z\314\224\225\304#\210\315\224\225\316\317\305\320\"!D#\210\2027*A\262\202\266\304\207" [lsp--display-inline-image-alist lsp-display-inline-image inhibit-read-only display-images-p nil plist-get :regexp :replaced-index 0 font-lock-remove-keywords t re-search-forward set-text-properties add-text-properties display eval :sexp] 14 (#$ . 274982)]) #@40 Fontlock STR with MODE. (fn STR MODE) (defalias 'lsp--fontlock-with-mode #[514 "\3031;\304\305\306\"r\211q\210\307\310\"\216c\210\311\302!\210\306 \210)\312\3131,\314 0\210\202-\210\315!\266\316 *\2620\202=\210)\207" [major-mode lsp-buffer-major-mode delay-mode-hooks (error) generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] make-local-variable nil (error) font-lock-ensure lsp--display-inline-image lsp--buffer-string-visible] 6 (#$ . 275586)]) #@145 Render STR using `major-mode' corresponding to LANGUAGE. When language is nil render as markup if `markdown-mode' is loaded. (fn STR LANGUAGE) (defalias 'lsp--render-string #[514 "\301\302\303\206\303#\262\304\305\306\"\"\211\203\307\"\207\207" [lsp-language-id-configuration s-replace " " "" -some make-closure #[257 "\211\211A\262\242\211\300\232\205\301!\205\207" [V0 functionp] 6 "\n\n(fn INPUT0)"] lsp--fontlock-with-mode] 6 (#$ . 276117)]) #@39 Render CONTENT element. (fn CONTENT) (defalias 'lsp--render-element #[257 "\301\302!\203\333\211\303\304!\305\306#=?\262\262\203d\211\303\304!\305\307#=?\262\262\203I\211\305\306\310#\262\305\307\310#\262\311\"\266\204\202\363\211;\203U\311\312\"\202\363\211\204]\313\202\367\314\315\"\202\363\211\303\304!\305\316#=?\262\262\203\300\211\303\304!\305\307#=?\262\262\203\245\211\305\316\310#\262\305\307\310#\262\311\"\266\204\202\363\211;\203\261\311\312\"\202\363\211\204\271\313\202\367\314\315\"\202\363\211;\203\314\311\312\"\202\363\211\204\324\313\202\367\314\315\"\202\363\211;\203\347\311\312\"\202\363\211\204\357\313\202\367\314\315\"\206\367\313)\207" [inhibit-message t ht\? make-symbol "ht--not-found" gethash "language" "value" nil lsp--render-string "markdown" "" error "Failed to handle %s" "kind"] 8 (#$ . 276590)]) (defalias 'lsp--create-unique-string-fn #[0 "\300C\301\302\"\207" [nil make-closure #[257 "\301\300\242\302\303$\211\304U\203\202\305\306#\300\300\242B\240\210\207" [V0 cl-count :test string= 0 format "%s (%s)"] 6 "\n\n(fn ELEMENT)"]] 4]) #@57 Select an action to execute from ACTIONS. (fn ACTIONS) (defalias 'lsp--select-action #[257 "\302!\203 \303\304\305\"\207\306!\307=\203\203\310!\207\311\312\313\314\315\"\316\317 \320\"\305\311%)\207" [lsp-auto-execute-action completion-ignore-case seq-empty-p signal lsp-no-code-actions nil seq-length 1 lsp-seq-first t lsp--completing-read "Select code action: " seq-into list -compose lsp--create-unique-string-fn lsp:code-action-title] 7 (#$ . 277754)]) #@52 Return the server ID of WORKSPACE. (fn WORKSPACE) (defalias 'lsp--workspace-server-id #[257 "\302!>\204\303\304\305D\"\210\211\306H\302! >\204!\303\304\307D\"\210\211\310H\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--workspace 5 lsp--client 15] 6 (#$ . 278229)]) #@94 Return a single line from RENDERED, appropriate for display in the echo area. (fn CONTENTS) (defalias 'lsp--handle-rendered-for-echo-area #[257 "\300 \211:\203\211\242\243\211\204\301\302!\"\207\301\303\"\207\301\303\"\207" [lsp-workspaces lsp-clients-extract-signature-on-hover lsp--workspace-server-id nil] 9 (#$ . 278565)]) (byte-code "\300\301\302\301\303\304#\305#\210\306\301\304\303\304\307%\207" [defalias lsp-clients-extract-signature-on-hover cl-generic-define (contents _server-id) nil "Extract a representative line from CONTENTS, to show in the echo area.\n\n(fn CONTENTS SERVER-ID)" cl-generic-define-method #[514 "\300\301\302!!!@\207" [s-lines s-trim lsp--render-element] 6 "\n\n(fn CONTENTS SERVER-ID)"]] 6) #@205 Render the content received from 'document/onHover' request. CONTENTS - MarkedString | MarkedString[] | MarkupContent RENDER-ALL - nil if only the signature should be rendered. (fn CONTENTS RENDER-ALL) (defalias 'lsp--render-on-hover-content #[514 "\302!\203\211\203\303!\207\304!\207;\203+\305\306\307\310#)\266\203\204+\303!\207\311!\2046;\203:C\262\312\303\203D\202H\313\314\"\"\315\301!\203W \203W\316\202X\305\317\320#\207" [inhibit-changing-match-data page-break-lines-mode lsp-markup-content\? lsp--render-element lsp--handle-rendered-for-echo-area "\n" nil t string-match lsp-marked-string\? seq-map seq-filter #[128 "\301\300\302\303\211\211\2034\211A\262\242\262\262\211\262\2034\304\"\211\262\2034\262\262T\262\202\266\207" [(lsp-marked-string\? #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp:marked-string-language (lsp-get-renderer) apply 0 nil] 8 "\n\n(fn &rest ARGS)"]) t 0 nil apply] 10 "\n\n(fn &rest ARGS)"] boundp "\n\f\n" mapconcat identity] 9 (#$ . 279309)]) #@38 Keymap for `lsp-signature-mode-map'. (defvar lsp-signature-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\311#\210\207" [make-sparse-keymap define-key [134217838] lsp-signature-next [134217840] lsp-signature-previous [134217825] lsp-signature-toggle-full-docs " " lsp-signature-stop ""] 5) (#$ . 280410)) #@105 Non-nil if Lsp-Signature mode is enabled. Use the command `lsp-signature-mode' to change this variable. (defvar lsp-signature-mode nil (#$ . 280785)) (make-variable-buffer-local 'lsp-signature-mode) #@596 Mode used to show signature popup. This is a minor mode. If called interactively, toggle the `Lsp-Signature mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `lsp-signature-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'lsp-signature-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [lsp-signature-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks lsp-signature-mode-hook lsp-signature-mode-on-hook lsp-signature-mode-off-hook called-interactively-p any message "Lsp-Signature mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 280991) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar lsp-signature-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\310\211%\207" [lsp-signature-mode-map lsp-signature-mode-hook variable-documentation put "Hook run after entering or leaving `lsp-signature-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode lsp-signature-mode ""] 6) #@38 Stop showing current signature help. (defalias 'lsp-signature-stop #[0 "\301\302!\210\303\304\305\"\210\306!\210\307\310!\207" [lsp-signature-function lsp-cancel-request-by-token :signature remove-hook post-command-hook lsp-signature nil lsp-signature-mode -1] 3 (#$ . 282771) nil]) #@16 (fn MESSAGE) (defalias 'lsp-lv-message #[257 "\211\203p\302\303\304\")\207\305 \207" [lsp--signature-last-buffer lv-force-update t lv-message "%s" lv-delete-window] 4 (#$ . 283061)]) (custom-declare-face 'lsp-signature-posframe '((t :inherit tooltip)) "Background and foreground for `lsp-signature-posframe'." :group 'lsp-mode) #@43 Params for signature and `posframe-show'. (defvar lsp-signature-posframe-params (list :poshandler 'posframe-poshandler-point-bottom-left-corner-upward :height 6 :width 60 :border-width 10 :min-width 60) (#$ . 283402)) #@62 Use posframe to show the STR signatureHelp string. (fn STR) (defalias 'lsp-signature-posframe #[257 "\211\2036\301\302r\303\304!q\210\305 \210c\210\306\307!\210p)\310\311`\312\313\314\315\316\317$\320\313\314\321\316\317$\322\313\314\315\316\317$\257\"#\207\323\304!\207" [lsp-signature-posframe-params apply posframe-show get-buffer-create "*lsp-signature*" erase-buffer visual-line-mode 1 append :position :background-color face-attribute lsp-signature-posframe :background nil t :foreground-color :foreground :border-color posframe-hide] 18 (#$ . 283626)]) #@18 (fn SIGNATURE) (defalias 'lsp--handle-signature-update #[257 "\301!\203\f\302!\202\303\302\304#\305!\203!\207\306 \207" [lsp-signature-function lsp-signature-help\? lsp--signature->message mapconcat "\n" s-present\? lsp-signature-stop] 5 (#$ . 284197)]) #@84 Activate signature help. It will show up only if current point has signature help. (defalias 'lsp-signature-activate #[0 "\303\211p\304\305\306\"\210\307\310!\207" [lsp--signature-last lsp--signature-last-index lsp--signature-last-buffer nil add-hook post-command-hook lsp-signature lsp-signature-mode t] 4 (#$ . 284470) nil]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable lsp-signature-cycle funcall function #[0 "\300\207" [t] 1] "Whether `lsp-signature-next' and prev should cycle." :type boolean :group lsp-mode] 8) #@22 Show next signature. (defalias 'lsp-signature-next #[0 "\304!G \205!\205!\n\204 TW\205! T\246 \305!!\207" [lsp--signature-last lsp--signature-last-index lsp-signature-cycle lsp-signature-function lsp:signature-help-signatures lsp--signature->message] 4 (#$ . 285040) nil]) #@17 Next signature. (defalias 'lsp-signature-previous #[0 "\205( \205(\n\204\304U?\205(\304U\203 \305 !G\202!S \306 !!\207" [lsp--signature-last-index lsp--signature-last lsp-signature-cycle lsp-signature-function 0 lsp:signature-help-signatures lsp--signature->message] 3 (#$ . 285330) nil]) #@46 Toggle full/partial signature documentation. (defalias 'lsp-signature-toggle-full-docs #[0 "\247?\211\203\242\206\301\202C\210\302 \207" [lsp-signature-doc-lines 20 lsp-signature-activate] 2 (#$ . 285637) nil]) #@75 Generate eldoc message from SIGNATURE-HELP response. (fn SIGNATURE-HELP) (defalias 'lsp--signature->message #[257 "\211\211\205\304\305!!?\205\306\307\"\306\310\"\306\311\" \206$\206$\312\313\314\"\315!\2055\306\316\"\315!\205?\306\317\"G\320U\203J\321\202Y\322\323\324T G#\325\326#\327P\n\205\231 \247\203h\312 W\205\231\330\331!!\332!\205\227\333 \247\203\225\334!G V\203\225\335\333\336 \334!\"\"\322\337\325\340#P\202\226P\262\203\304!\204\341\342\nG#\205\263\314\n\"\211\203\377\343!\211;\203\303\211\202\307\344\313\"\262\211\203\376\211;\203\332\345\"\202\334\211@\211\203\375;\203\354\211G\\\202\357A@\211\203\374\346\347\313\f%\210\210\210\210\210Q\266\212\207" [lsp--signature-last lsp--signature-last-index lsp-signature-render-documentation lsp-signature-doc-lines seq-empty-p lsp:signature-help-signatures gethash "activeSignature" "activeParameter" "signatures" 0 nil seq-elt ht\? "label" "parameters" 1 "" propertize format " %s/%s" face success " " lsp--render-element lsp:parameter-information-documentation\? s-present\? "\n" s-lines s-join -take "\nTruncated..." highlight < -1 lsp:parameter-information-label append s-index-of add-face-text-property eldoc-highlight-function-argument] 21 (#$ . 285864)]) #@64 Display signature info (based on `textDocument/signatureHelp') (defalias 'lsp-signature #[0 "\203 p\232\204 \301 \207\302\303\304 \305\306\307%\207" [lsp--signature-last-buffer lsp-signature-stop lsp-request-async "textDocument/signatureHelp" lsp--text-document-position-params lsp--handle-signature-update :cancel-token :signature] 6 (#$ . 287174)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable lsp-overlay-document-color-char funcall function #[0 "\300\207" [#1="■"] 1 #1#] "Display the char represent the document color in overlay" :type string :group lsp-mode] 8) #@20 (fn COLOR RANGE) (defalias 'lsp--color-create-interactive-command #[514 "\300\301#\207" [make-closure #[0 "\302\303\304\305\306\307 \310\300\311\301\257\"\312\313\314%\315!\205\316\317\"\315!\205&\316\320\"\203.\321!\210\211\2056\322\323\"\207" [V0 V1 lsp--completing-read "Select color presentation: " lsp-request "textDocument/colorPresentation" :textDocument lsp--text-document-identifier :color :range lsp:color-presentation-label nil t ht\? gethash "textEdit" "additionalTextEdits" lsp--apply-text-edit lsp--apply-text-edits color-presentation] 10 nil nil]] 6 (#$ . 287796)]) #@15 (fn NUMBER) (defalias 'lsp--number->color #[257 "\300\301\302\206\303\304_!\"\211G\305U\203\306P\207\207" [format "%x" round 0 255.0 1 "0"] 6 (#$ . 288400)]) #@25 Document color handler. (defalias 'lsp--document-color #[0 "\300\301!\205\302\301\303\304 D\305\306\307\310\311&\207" [lsp-feature\? "textDocument/documentColor" lsp-request-async :textDocument lsp--text-document-identifier #[257 "\300\301!\210\302\303\"\207" [lsp--remove-overlays lsp-color seq-do #[257 "\301\302\"\301\303\"\301\304\"\301\305\"\301\306\"\307!\211A\262\242\310\"\311 \"\312\313\314#\210\312\315\314#\210\312\316\317\320\321\322\323\324!\324!\324!$DC\325\326\327\330\331 \332\333#\210\211\262& #\207" [lsp-overlay-document-color-char gethash "color" "red" "green" "blue" "range" lsp--range-to-region make-overlay lsp--color-create-interactive-command overlay-put lsp-color t evaporate before-string propertize face :foreground format "#%s%s%s" lsp--number->color action mouse-face lsp-lens-mouse-face local-map make-sparse-keymap define-key [mouse-1]] 28 "\n\n(fn INPUT0)"]] 4 "\n\n(fn RESULT)"] :mode unchanged :cancel-token :document-color-token] 8 (#$ . 288572)]) (defvar lsp--hover-saved-bounds nil nil) (make-variable-buffer-local 'lsp--hover-saved-bounds) #@61 Display hover info (based on `textDocument/signatureHelp'). (defalias 'lsp-hover #[0 "\203\303!\203\304 !\207\305\211\306\307!\203\304\305!\207\n\2053\310\311!\2053\312\313\314 \315\316\317\320\321\322\323& \207" [lsp--hover-saved-bounds lsp--eldoc-saved-message lsp-eldoc-enable-hover lsp--point-in-bounds-p lsp--eldoc-message nil looking-at "[[:space:]\n]" lsp--capability :hoverProvider lsp-request-async "textDocument/hover" lsp--text-document-position-params #[257 "\211\302!\205 \303\304\"\302!\205\303\305\"\205+\203!\306!\307\205*\310 \"!\207" [lsp--hover-saved-bounds lsp-eldoc-render-all ht\? gethash "range" "contents" lsp--range-to-region lsp--eldoc-message lsp--render-on-hover-content] 8 "\n\n(fn INPUT0)"] :error-handler ignore :mode tick :cancel-token :eldoc-hover] 11 (#$ . 289692)]) #@64 Handler for editor.action.triggerParameterHints. (fn COMMAND) (defalias 'lsp--action-trigger-parameter-hints #[257 "\301>\205\302 \207" [lsp-signature-auto-activate :on-server-request lsp-signature-activate] 3 (#$ . 290527)]) #@57 Handler for editor.action.triggerSuggest. (fn COMMAND) (defalias 'lsp--action-trigger-suggest #[257 "\301\300!\203\203\302\303!\203\302\304!\203\305\306\307\310#\207\311 \207" [company-mode boundp fboundp company-auto-begin company-post-command run-at-time 0 nil #[0 "\302\303\304 \210\305 *\207" [company-minimum-prefix-length this-command company-idle-begin 0 company-auto-begin company-post-command] 2] completion-at-point] 5 (#$ . 290763)]) #@26 Default action handlers. (defconst lsp--default-action-handlers (byte-code "\300\301\302\"\303\304\305#\210\303\306\307#\210\207" [make-hash-table :test equal puthash "editor.action.triggerParameterHints" lsp--action-trigger-parameter-hints "editor.action.triggerSuggest" lsp--action-trigger-suggest] 5) (#$ . 291226)) #@59 Find action handler for particular COMMAND. (fn COMMAND) (defalias 'lsp--find-action-handler #[257 "\303\304 \305\303\211\211\203l\211A\262\242\262\262\211\262\203l\211\2054\306!>\2041\307\310\311D\"\210\211\312H\262\211\205L\306! >\204I\307\310\313D\"\210\211\314H\262\211\205W\315\"\262\211\262\204l\262\262T\262\202\266\211\262\206x\315\n\"\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags lsp--default-action-handlers nil lsp-workspaces 0 type-of signal wrong-type-argument lsp--workspace 5 lsp--client 11 gethash] 12 (#$ . 291553)]) #@42 Code action params. (fn &optional KIND) (defalias 'lsp--text-document-code-action-params #[256 "\300\301 \302\303 \203\304\305 \306 \"\202\304``\"\307\310\311 \205%\312\313 !DBB\257\207" [:textDocument lsp--text-document-identifier :range use-region-p lsp--region-to-range region-beginning region-end :context :diagnostics lsp-cur-line-diagnostics :only vector] 11 (#$ . 292153)]) #@126 Retrieve the code actions for the active region or the current line. It will filter by KIND if non nil. (fn &optional KIND) (defalias 'lsp-code-actions-at-point #[256 "\300\301\302!\"\207" [lsp-request "textDocument/codeAction" lsp--text-document-code-action-params] 5 (#$ . 292551)]) #@57 Execute code action by COMMAND-KIND. (fn COMMAND-KIND) (defalias 'lsp-execute-code-action-by-kind #[257 "\300\301\302\303\"\304!\"!\211\203\305!\207\306\307\310\"\207" [lsp--select-action -filter make-closure #[257 "\301\302\"\211\205 \300\232\207" [V0 gethash "kind"] 4 "\n\n(fn INPUT0)"] lsp-get-or-calculate-code-actions lsp-execute-code-action signal lsp-no-code-actions (command-kind)] 6 (#$ . 292844)]) (defalias 'lsp-get-or-calculate-code-actions 'lsp-code-actions-at-point) #@81 Parse and execute a code ACTION represented as a Command LSP type. (fn INPUT0) (defalias 'lsp--execute-command #[257 "\211\303\304\"\303\305\"\206\306 @\307! >\204\310\311\312D\"\210\211\313H\262\307!\n>\2043\310\311\314D\"\210\211\315H\262\3161E\317\320!#0\207\210\321!\211\203Q\211!\207\322\"\207" [lsp--cur-workspace cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags gethash "command" "arguments" lsp-workspaces type-of signal wrong-type-argument lsp--workspace 5 lsp--client 15 (cl-no-applicable-method) lsp-execute-command intern lsp--find-action-handler lsp-send-execute-command] 9 (#$ . 293341)]) #@178 Execute code action ACTION. If ACTION is not set it will be selected from `lsp-code-actions-at-point'. Request codeAction/resolve for more info if server supports. (fn INPUT0) (defalias 'lsp-execute-code-action #[257 "\211\300\301\"\300\302\"\303\304!\203\204\211\204\305\306\304\"!\207\305!\207" [gethash "command" "edit" lsp-feature\? "codeAction/resolve" lsp--execute-code-action lsp-request] 8 (#$ . 293983) (byte-code "\300\301 !C\207" [lsp--select-action lsp-code-actions-at-point] 2)]) #@42 Execute code action ACTION. (fn INPUT0) (defalias 'lsp--execute-code-action #[257 "\211\300\301\"\300\302\"\211\203\303\304\"\210;\203\305!\207\306!\205$\305!\207" [gethash "command" "edit" lsp--apply-workspace-edit code-action lsp--execute-command lsp-command\?] 7 (#$ . 294494)]) #@53 A mapping from `major-mode' to its indent variable. (defvar lsp--formatting-indent-alist '((c-mode . c-basic-offset) (c++-mode . c-basic-offset) (d-mode . c-basic-offset) (java-mode . c-basic-offset) (jde-mode . c-basic-offset) (js-mode . js-indent-level) (js2-mode . js2-basic-offset) (js3-mode . js3-indent-level) (json-mode . js-indent-level) (lua-mode . lua-indent-level) (objc-mode . c-basic-offset) (php-mode . c-basic-offset) (perl-mode . perl-indent-level) (cperl-mode . cperl-indent-level) (raku-mode . raku-indent-offset) (erlang-mode . erlang-indent-level) (ada-mode . ada-indent) (sgml-mode . sgml-basic-offset) (nxml-mode . nxml-child-indent) (pascal-mode . pascal-indent-level) (typescript-mode . typescript-indent-level) (sh-mode . sh-basic-offset) (ruby-mode . ruby-indent-level) (enh-ruby-mode . enh-ruby-indent-level) (crystal-mode . crystal-indent-level) (css-mode . css-indent-offset) (rust-mode . rust-indent-offset) (rustic-mode . rustic-indent-offset) (scala-mode . scala-indent:step) (powershell-mode . powershell-indent) (ess-mode . ess-indent-offset) (yaml-mode . yaml-indent-offset) (hack-mode . hack-indent-offset) (default . standard-indent)) (#$ . 294795)) #@45 Get indentation offset for MODE. (fn MODE) (defalias 'lsp--get-indent-width #[257 "\301\"\206\302\303N\206\304!\207" [lsp--formatting-indent-alist alist-get lsp--get-indent-width derived-mode-parent default] 4 (#$ . 295988)]) #@36 Create document formatting params. (defalias 'lsp--make-document-formatting-params #[0 "\302\303\304 \305\306\307\310!J\311 \203\312\202\313$$\207" [major-mode indent-tabs-mode lsp-make-document-formatting-params :text-document lsp--text-document-identifier :options lsp-make-formatting-options :tab-size lsp--get-indent-width :insert-spaces :json-false t] 9 (#$ . 296228)]) #@41 Ask the server to format this document. (defalias 'lsp-format-buffer #[0 "\300\301!\203\302\301\303 \"\304!\203\305\306!\207\307\310\"\207\300\311!\203)\214~\210\312ed\")\207\313\314\315C\"\207" [lsp-feature\? "textDocument/formatting" lsp-request lsp--make-document-formatting-params seq-empty-p lsp--info "No formatting changes provided" lsp--apply-text-edits format "textDocument/rangeFormatting" lsp-format-region signal lsp-capability-not-supported "documentFormattingProvider"] 4 (#$ . 296614) "*"]) #@90 Ask the server to format the region, or if none is selected, the current line. (fn S E) (defalias 'lsp-format-region #[514 "\300\301\302\"\"\303!\203\304\305!\207\306\307\"\207" [lsp-request "textDocument/rangeFormatting" lsp--make-document-range-formatting-params seq-empty-p lsp--info "No formatting changes provided" lsp--apply-text-edits format] 7 (#$ . 297133) "r"]) #@127 Define an interactive function FUNC-NAME that attempts to execute a CODE-ACTION-KIND action. (fn FUNC-NAME CODE-ACTION-KIND) (defalias 'lsp-make-interactive-code-action '(macro . #[514 "\300\301\302\303!P!\304\305\306\"\307\310\304\311D\312\313\314\315\305\316\"DEDF\257\207" [defun intern "lsp-" symbol-name nil format "Perform the %s code action, if available." (interactive) condition-case lsp-execute-code-action-by-kind lsp-no-code-actions when (called-interactively-p 'any) lsp--info "%s action not available"] 17 (#$ . 297519)])) #@63 Perform the source.organizeImports code action, if available. (defalias 'lsp-organize-imports #[0 "\3001 \301\302!0\207\210\303\304!\205\305\306!\207" [(lsp-no-code-actions) lsp-execute-code-action-by-kind "source.organizeImports" called-interactively-p any lsp--info "source.organizeImports action not available"] 2 (#$ . 298070) nil]) #@73 Make DocumentRangeFormattingParams for selected region. (fn START END) (defalias 'lsp--make-document-range-formatting-params #[514 "\300\301 \302\"\"\207" [lsp:set-document-range-formatting-params-range lsp--make-document-formatting-params lsp--region-to-range] 7 (#$ . 298416)]) (defconst lsp--highlight-kind-face '((1 . lsp-face-highlight-textual) (2 . lsp-face-highlight-read) (3 . lsp-face-highlight-write))) #@13 (fn NAME) (defalias 'lsp--remove-overlays #[257 "\214~\210\300ed\301$)\207" [remove-overlays t] 6 (#$ . 298838)]) #@62 Highlight all relevant references to the symbol under point. (defalias 'lsp-document-highlight #[0 "\303\304!\210\305\211\306\307 )\207" [lsp--have-document-highlights lsp--symbol-bounds-of-last-highlight-invocation lsp-enable-symbol-highlighting lsp--remove-overlays lsp-highlight nil t lsp--document-highlight] 3 (#$ . 298961) nil]) #@185 Create a callback to process the reply of a 'textDocument/documentHighlight' message for the buffer BUF. A reference is highlighted only if it is visible in a window. (fn HIGHLIGHTS) (defalias 'lsp--document-highlight-callback #[257 "\301\302!\210\303\304\305\306\211\307#\"\310\303\311\312\"\"\207" [lsp--have-document-highlights lsp--remove-overlays lsp-highlight -map #[257 "\300\301!\302\"S\300\303!\302\"TB\207" [line-number-at-pos window-start t window-end] 5 "\n\n(fn WIN)"] get-buffer-window-list nil visible t make-closure #[257 "\301\302\"\301\303\"\301\304\"\301\305\"\301\304\"\301\306\"\307\310\311&\300\"\207" [V0 gethash "range" "start" "line" "end" "kind" -map make-closure #[257 "\211\211A\262\242\306\300!\306\302!\301TV\205D\303TW\205D \205%\307`#?\205D\310\"\311\312\304\2065\313\236A#\210\311\314\315#\210\211\262\207" [V0 V1 V2 V3 V4 lsp-symbol-highlighting-skip-current lsp--position-to-point <= make-overlay overlay-put face 1 lsp-highlight t lsp--highlight-kind-face] 12 "\n\n(fn INPUT0)"]] 15 "\n\n(fn INPUT0)"]] 7 (#$ . 299306)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\301\"\207" [custom-declare-variable lsp-symbol-kinds funcall function #[0 "\300\207" [((1 . "File") (2 . "Module") (3 . "Namespace") (4 . "Package") (5 . "Class") (6 . "Method") (7 . "Property") (8 . "Field") (9 . "Constructor") (10 . "Enum") (11 . "Interface") (12 . "Function") (13 . "Variable") (14 . "Constant") (15 . "String") (16 . "Number") (17 . "Boolean") (18 . "Array") (19 . "Object") (20 . "Key") (21 . "Null") (22 . "Enum Member") (23 . "Struct") (24 . "Event") (25 . "Operator") (26 . "Type Parameter"))] 1] "Alist mapping SymbolKinds to human-readable strings.\nVarious Symbol objects in the LSP protocol have an integral type,\nspecifying what they are. This alist maps such type integrals to\nreadable representations of them. See\n`https://microsoft.github.io/language-server-protocol/specifications/specification-current/',\nnamespace SymbolKind." :group lsp-mode :type (alist :key-type integer :value-type string) defalias lsp--symbol-kind] 8) #@60 Return a `xref-item' from SYMBOL information. (fn INPUT0) (defalias 'lsp--symbol-information-to-xref #[257 "\301\302\"\301\303\"\301\304\"\301\305\"\301\306\301\307\"\"\301\310\"\301\311\"\312\313\314\315\n\" #\316\317!#\"\207" [lsp-symbol-kinds gethash "kind" "name" "location" "uri" "start" "range" "line" "character" xref-make format "[%s] %s" alist-get xref-make-file-location lsp--uri-to-path] 14 (#$ . 301445)]) #@412 Get document symbols. If the buffer has not been modified since symbols were last retrieved, simply return the latest result. Else, if the request was initiated by Imenu updating its menu-bar entry, perform it asynchronously; i.e., give Imenu the latest result and then force a refresh when a new one is available. Else (e.g., due to interactive use of `imenu' or `xref'), perform the request synchronously. (defalias 'lsp--get-document-symbols #[0 "\303 U\203 \207\304\305 D\303 \n\204\306\307\"\211\207\310\307\311\312\"\313\314%\210 \207" [lsp--document-symbols-tick lsp--document-symbols lsp--document-symbols-request-async buffer-chars-modified-tick :textDocument lsp--text-document-identifier lsp-request "textDocument/documentSymbol" lsp-request-async make-closure #[257 "\211\300\303 \207" [V0 lsp--document-symbols lsp--document-symbols-tick lsp--imenu-refresh] 2 "\n\n(fn DOCUMENT-SYMBOLS)"] :mode alive] 8 (#$ . 301885)]) (advice-add 'imenu-update-menubar :around #[385 "\301\302\")\207" [lsp--document-symbols-request-async t apply] 5 "\n\n(fn OLDFUN &rest R)"]) #@108 Convert DOCUMENT-SYMBOLS to symbols hierarchy on CURRENT-POSITION. (fn DOCUMENT-SYMBOLS CURRENT-POSITION) (defalias 'lsp--document-symbols->document-symbols-hierarchy #[514 "\300\301\302\"\"\211\303!\205\304\305\"\211\203\306\"B\207\205$C\207" [seq-find make-closure #[257 "\301\302\"\303\300\"\207" [V0 gethash "range" lsp-point-in-range\?] 5 "\n\n(fn INPUT0)"] ht\? gethash "children" lsp--document-symbols->document-symbols-hierarchy] 9 (#$ . 302986)]) #@67 Convert a SymbolInformation to a DocumentInformation (fn INPUT0) (defalias 'lsp--symbol-information->document-symbol #[257 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\306\307\310\311\312 !\313\314\315\n\316\312!\317&\207" [gethash "name" "kind" "location" "containerName" "deprecated" lsp-make-document-symbol :name :kind :range lsp:location-range :children\? nil :deprecated\? :selection-range :detail\?] 21 (#$ . 303466)]) #@116 Convert SYMBOLS-INFORMATIONS to symbols hierarchy on CURRENT-POSITION. (fn SYMBOLS-INFORMATIONS CURRENT-POSITION) (defalias 'lsp--symbols-informations->document-symbols-hierarchy #[514 "\300\301\302\"\"\303\304\"\207" [-keep make-closure #[257 "\211\301\302\301\303\"\"\304\300\"\205\305!\207" [V0 gethash "range" "location" lsp-point-in-range\? lsp--symbol-information->document-symbol] 7 "\n\n(fn INPUT0)"] sort #[514 "\300\301\"\300\302\"\300\303\"\300\301\"\300\302\"\300\303\"\304\"\205$\304\"\207" [gethash "range" "start" "end" lsp--position-compare] 11 "\n\n(fn INPUT0 INPUT1)"]] 7 (#$ . 303924)]) #@53 Convert SYMBOLS to symbols-hierarchy. (fn SYMBOLS) (defalias 'lsp--symbols->document-symbols-hierarchy #[257 "\300!\211\205(\301\302\303\304 \302\"\305\303\304 \305\"$\306!\203\"\307\"\202&\310\"\262\207" [lsp-seq-first lsp-make-position :line plist-get lsp--cur-position :character lsp-symbol-information\? lsp--symbols-informations->document-symbols-hierarchy lsp--document-symbols->document-symbols-hierarchy] 9 (#$ . 304558)]) (defalias 'lsp--xref-backend #[0 "\300\207" [xref-lsp] 1]) (cl-generic-define-method 'xref-backend-identifier-at-point nil '((_backend (eql xref-lsp))) nil #[257 "\300\301\302!\206\303\304\305#\207" [propertize thing-at-point symbol "" identifier-at-point t] 5 "\n\n(fn BACKEND)"]) #@21 (fn SYMBOLS PATH) (defalias 'lsp--xref-elements-index #[514 "\300\301\302\"\"\207" [-mapcat make-closure #[257 "\301\302!\204 \303\304\"\207\305\306!\307\310#=?\262\262\204&\303\304\"\207\305\306!\307\311#=?\262\262\204?\303\304\"\207\305\306!\307\312#=?\262\262\203\260\305\306!\307\313#=?\262\262\203\365\307\313\314#\262\302!\203:\211\305\306!\307\315#=?\262\262\203\211\305\306!\307\316#=?\262\262\203\304\211\307\315\314#\262\307\317\314#\262\307\311\314#\262\300P\320!B\321\300\322Q\"B\207\305\306!\307\323#=?\262\262\203y\307\323\314#\262\302!\204\353\303\304\"\207\211\305\306!\307\312#=?\262\262\204\303\304\"\207\211\305\306!\307\324#=?\262\262\203s\211\307\312\314#\262\302!\204+\303\304\"\207\211\305\306!\307\315#=?\262\262\204D\303\304\"\207\211\305\306!\307\316#=?\262\262\203m\211\307\315\314#\262\307\311\314#\262\300#\207\303\304\"\207\303\304\"\207\303\304\"\207\305\306!\307\323#=?\262\262\2034\307\323\314#\262\302!\204\246\303\304\"\207\211\305\306!\307\312#=?\262\262\204\277\303\304\"\207\211\305\306!\307\324#=?\262\262\203.\211\307\312\314#\262\302!\204\346\303\304\"\207\211\305\306!\307\315#=?\262\262\204\377\303\304\"\207\211\305\306!\307\316#=?\262\262\203(\211\307\315\314#\262\307\311\314#\262\300#\207\303\304\"\207\303\304\"\207\303\304\"\207\305\306!\307\323#=?\262\262\203\357\307\323\314#\262\302!\204a\303\304\"\207\211\305\306!\307\312#=?\262\262\204z\303\304\"\207\211\305\306!\307\324#=?\262\262\203\351\211\307\312\314#\262\302!\204\241\303\304\"\207\211\305\306!\307\315#=?\262\262\204\272\303\304\"\207\211\305\306!\307\316#=?\262\262\203\343\211\307\315\314#\262\307\311\314#\262\300#\207\303\304\"\207\303\304\"\207\303\304\"\207\305\306!\307\323#=?\262\262\203\252\307\323\314#\262\302!\204\303\304\"\207\211\305\306!\307\312#=?\262\262\2045\303\304\"\207\211\305\306!\307\324#=?\262\262\203\244\211\307\312\314#\262\302!\204\\\303\304\"\207\211\305\306!\307\315#=?\262\262\204u\303\304\"\207\211\305\306!\307\316#=?\262\262\203\236\211\307\315\314#\262\307\311\314#\262\300#\207\303\304\"\207\303\304\"\207\303\304\"\207\305\306!\307\323#=?\262\262\203e\307\323\314#\262\302!\204\327\303\304\"\207\211\305\306!\307\312#=?\262\262\204\360\303\304\"\207\211\305\306!\307\324#=?\262\262\203_\211\307\312\314#\262\302!\204\303\304\"\207\211\305\306!\307\315#=?\262\262\2040\303\304\"\207\211\305\306!\307\316#=?\262\262\203Y\211\307\315\314#\262\307\311\314#\262\300#\207\303\304\"\207\303\304\"\207\303\304\"\207" [V0 #[771 "P\300!BC\207" [lsp--position-to-point] 6 "\n\n(fn PATH START NAME)"] ht\? error "No clause matching `%S'" make-symbol "ht--not-found" gethash "kind" "name" "range" "selectionRange" nil "start" "end" "children" lsp--position-to-point lsp--xref-elements-index " / " "location" "uri"] 15 "\n\n(fn SYM)"]] 6 (#$ . 305290)]) (defvar lsp--symbols-cache nil nil) (byte-code "\300\301!\210\302\303\304\305\304\306%\210\302\307\304\310\304\311%\210\302\312\304\313\304\314%\210\302\315\304\316\304\317%\210\320\321\322\323\324DD\325\326\327\330\331&\207" [make-variable-buffer-local lsp--symbols-cache cl-generic-define-method xref-backend-identifier-completion-table nil ((_backend (eql xref-lsp))) #[257 "\301\302!\203\303\304 \305\"\211\207\306\307\310!\206\311\312\313#C\207" [lsp--symbols-cache lsp--find-workspaces-for "textDocument/documentSymbol" lsp--xref-elements-index lsp--get-document-symbols nil propertize thing-at-point symbol "" identifier-at-point t] 6 "\n\n(fn BACKEND)"] xref-backend-definitions ((_backend (eql xref-lsp)) identifier) #[514 "\212\301\302\303#\204\304\"\206\305\306\"Ab\210\307\310\311\312 \"!)\207" [lsp--symbols-cache get-text-property 0 identifier-at-point assoc user-error "Unable to find symbol %s in current document" lsp--locations-to-xref-items lsp-request "textDocument/definition" lsp--text-document-position-params] 6 "\n\n(fn BACKEND IDENTIFIER)"] xref-backend-references ((_backend (eql xref-lsp)) identifier) #[514 "\212\301\302\303#\204\304\"\206\305\306\"Ab\210\307\310\311\312 \"!)\207" [lsp--symbols-cache get-text-property 0 identifier-at-point assoc user-error "Unable to find symbol %s" lsp--locations-to-xref-items lsp-request "textDocument/references" lsp--make-reference-params] 6 "\n\n(fn BACKEND IDENTIFIER)"] xref-backend-apropos ((_backend (eql xref-lsp)) pattern) #[514 "\300\301\302\303\304D\"\"\207" [seq-map lsp--symbol-information-to-xref lsp-request "workspace/symbol" :query] 8 "\n\n(fn BACKEND PATTERN)"] custom-declare-variable lsp-rename-use-prepare funcall function #[0 "\300\207" [t] 1] "Whether `lsp-rename' should do a prepareRename first.\nFor some language servers, textDocument/prepareRename might be\ntoo slow, in which case this variable may be set to nil.\n`lsp-rename' will then use `thing-at-point' `symbol' to determine\nthe symbol to rename at point." :group lsp-mode :type boolean] 8) #@354 Get a symbol to rename and placeholder at point. Returns a cons ((START . END) . PLACEHOLDER?), and nil if renaming is generally supported but cannot be done at point. START and END are the bounds of the identifiers being renamed, while PLACEHOLDER?, is either nil or a string suggested by the language server as the initial input of a new-name prompt. (defalias 'lsp--get-symbol-to-rename #[0 "\301\302!\204\n\303\304!\210\203<\301\305!\203<\306\305\307 \"\211\205;\310\311!\203(\202+\312!!\311!?\2056\313!B\266\202\207\314\315!\211\205E\211C\207" [lsp-rename-use-prepare lsp-feature\? "textDocument/rename" error "The connected server(s) doesn't support renaming" "textDocument/prepareRename" lsp-request lsp--text-document-position-params lsp--range-to-region lsp-range\? lsp:prepare-rename-result-range lsp:prepare-rename-result-placeholder bounds-of-thing-at-point symbol] 5 (#$ . 310545)]) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\207" [custom-declare-face lsp-face-rename ((t :underline t)) "Face used to highlight the identifier being renamed.\nRenaming can be done using `lsp-rename'." :group lsp-mode lsp-rename-placeholder-face ((t :inherit font-lock-variable-name-face)) "Face used to display the rename placeholder in.\nWhen calling `lsp-rename' interactively, this will be the face of\nthe new name."] 6) #@33 History for `lsp--read-rename'. (defvar lsp-rename-history nil (#$ . 311912)) #@395 Read a new name for a `lsp-rename' at `point' from the user. AT-POINT shall be a structure as returned by `lsp--get-symbol-to-rename'. Returns a string, which should be the new name for the identifier at point. If renaming cannot be done at point (as determined from AT-POINT), throw a `user-error'. This function is for use in `lsp-rename' only, and shall not be relied upon. (fn AT-POINT) (defalias 'lsp--read-rename #[257 "\211\204\300\301!\210\211\211A\262\242\211A\262\242{\206\211\302\303\304#\305C\306\307\"\216\211\310\"\240\210\311\242\303\312#\210\313\314\315\"\316#)\207" [user-error "`lsp-rename' is invalid here" propertize face lsp-rename-placeholder-face nil make-closure #[0 "\300\242\205 \301\300\242!\207" [V0 delete-overlay] 2] make-overlay overlay-put lsp-face-rename read-string format "Rename %s to: " lsp-rename-history] 14 (#$ . 311997)]) #@84 Rename the symbol (and all references to it) under point to NEWNAME. (fn NEWNAME) (defalias 'lsp-rename #[257 "\300\301\302\303 \304\305 \306\257\"\211\205\307\310\"\207" [lsp-request "textDocument/rename" :textDocument lsp--text-document-identifier :position lsp--cur-position :newName lsp--apply-workspace-edit rename] 9 (#$ . 312893) (byte-code "\300\301 !C\207" [lsp--read-rename lsp--get-symbol-to-rename] 2)]) #@44 (fn XREFS DISPLAY-ACTION REFERENCES\=\?) (defalias 'lsp-show-xrefs #[771 "\302 \204\n\303\304\305\"\210\306\301!\203)\307 \210\211\203\202 \310!\311\312 B\313BD\"\207\314\"\207" [xref-show-xrefs-function xref-show-definitions-function region-active-p push-mark nil t boundp xref-push-marker-stack -const window selected-window display-action xref--show-xrefs] 8 (#$ . 313322)]) (cl-generic-define-method 'seq-empty-p nil '((ht hash-table)) nil #[257 "\211\300!\301U\207" [hash-table-count 0] 4 "Function `seq-empty-p' for hash-table.\n\n(fn HT)"]) #@227 Send request named METHOD and get cross references of the symbol under point. EXTRA is a plist of extra parameters. REFERENCES? t when METHOD returns references. (fn METHOD &optional EXTRA &key DISPLAY-ACTION REFERENCES\=\?) (defalias 'lsp-find-locations #[641 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311\312 \"\"\313!\203S\314\315\316\317\320\"\206Q\321\"\207\322\323!#\207" [plist-member :display-action :references\? (:display-action :references\? :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:display-action :references?)" lsp-request append lsp--text-document-position-params seq-empty-p lsp--error "Not found for: %s" thing-at-point symbol t "" lsp-show-xrefs lsp--locations-to-xref-items] 11 (#$ . 313891)]) #@72 Find declarations of the symbol under point. (fn &key DISPLAY-ACTION) (defalias 'lsp-find-declaration #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\304\301$\207" [plist-member :display-action (:display-action :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:display-action)" lsp-find-locations "textDocument/declaration"] 7 (#$ . 314748) nil]) #@71 Find definitions of the symbol under point. (fn &key DISPLAY-ACTION) (defalias 'lsp-find-definition #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\304\301$\207" [plist-member :display-action (:display-action :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:display-action)" lsp-find-locations "textDocument/definition"] 7 (#$ . 315214) nil]) #@68 Click to start `lsp-find-definition' at clicked point. (fn CLICK) (defalias 'lsp-find-definition-mouse #[257 "\300!\301!\211@\262\302!\210b\210\303 \207" [event-start posn-point select-window lsp-find-definition] 6 (#$ . 315677) "e"]) #@75 Find implementations of the symbol under point. (fn &key DISPLAY-ACTION) (defalias 'lsp-find-implementation #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\304\301$\207" [plist-member :display-action (:display-action :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:display-action)" lsp-find-locations "textDocument/implementation"] 7 (#$ . 315925) nil]) #@100 Find references of the symbol under point. (fn &optional INCLUDE-DECLARATION &key DISPLAY-ACTION) (defalias 'lsp-find-references #[384 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\312\313!DD\301\314\315&\207" [plist-member :display-action (:display-action :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:display-action)" lsp-find-locations "textDocument/references" :context :includeDeclaration lsp-json-bool :references\? t] 10 (#$ . 316401) "P"]) #@76 Find type definitions of the symbol under point. (fn &key DISPLAY-ACTION) (defalias 'lsp-find-type-definition #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\304\301$\207" [plist-member :display-action (:display-action :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:display-action)" lsp-find-locations "textDocument/typeDefinition"] 7 (#$ . 316975) nil]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\307\310\311\"\207" [defalias lsp-find-custom lsp-find-locations lsp-goto-implementation lsp-find-implementation lsp-goto-type-definition lsp-find-type-definition eval-after-load evil #[0 "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\210\300\306\302\303#\207" [evil-set-command-property lsp-find-definition :jump t lsp-find-implementation lsp-find-references lsp-find-type-definition] 4]] 3) #@85 Find all workspaces in the current project that can handle MSG. (fn MSG-OR-METHOD) (defalias 'lsp--find-workspaces-for #[257 "\211;\203 \211\202 \302\303\"\304\"A\211\203p\211\302\305\"\302\306\"\307\310 \311\307\211\203k\211A\262\242\262\262T\262\203D!\206_\203P\312!\206_\313\n!\206_?\205_?)\203%B\262\202%\266\211\237\207\310 \207" [lsp-method-requirements lsp--cur-workspace plist-get :method assoc :capability :check-command nil lsp-workspaces 0 lsp--capability lsp--registered-capability] 13 (#$ . 317925)]) #@147 Returns non-nil if current language server(s) can execute COMMAND-NAME. The command is executed via `workspace/executeCommand' (fn COMMAND-NAME) (defalias 'lsp-can-execute-command\? #[257 "\300\301\302\303 !!\304\305$\207" [cl-position lsp:execute-command-options-commands lsp:server-capabilities-execute-command-provider\? lsp--server-capabilities :test equal] 6 (#$ . 318489)]) (byte-code "\300\301\302\"\210\303\304\305\306\305\307%\207" [defalias lsp-feature\? lsp--find-workspaces-for cl-generic-define-method lsp-execute-command nil (_server _command _arguments) #[771 "\300\301\302\"\207" [signal cl-no-applicable-method nil] 6 "Dispatch COMMAND execution.\n\n(fn SERVER COMMAND ARGUMENTS)"]] 6) #@67 Execute workspace COMMAND with ARGS. (fn COMMAND &optional ARGS) (defalias 'lsp-workspace-command-execute #[513 "\3001\211\203\301\302F\202\301D\303\304\"\2620\207\305\306#\207" [(debug error) :command :arguments lsp-request "workspace/executeCommand" lsp--error "`workspace/executeCommand' with `%s' failed.\n\n%S"] 7 (#$ . 319200)]) #@125 Create and send a 'workspace/executeCommand' message having command COMMAND and optional ARGS. (fn COMMAND &optional ARGS) (defalias 'lsp-send-execute-command #[513 "\300\"\207" [lsp-workspace-command-execute] 5 (#$ . 319556)]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\207" [defalias lsp-point-to-position lsp--point-to-position lsp-text-document-identifier lsp--text-document-identifier lsp--send-execute-command lsp-send-execute-command lsp-on-open lsp--text-document-did-open lsp-on-save lsp--text-document-did-save] 3) #@53 Set the SETTINGS for the lsp server. (fn SETTINGS) (defalias 'lsp--set-configuration #[257 "\300\301\302D\"\207" [lsp-notify "workspace/didChangeConfiguration" :settings] 5 (#$ . 320146)]) (defalias 'lsp-current-buffer #[0 "\206p\207" [lsp--virtual-buffer] 1]) #@18 (fn BUFFER-ID) (defalias 'lsp-buffer-live-p #[257 "\300\301\"\211\203\f\211!\207\302!\207" [plist-get :buffer-live\? buffer-live-p] 4 (#$ . 320418)]) #@176 Advice around function `set-visited-file-name'. This advice sends textDocument/didClose for the old file and textDocument/didOpen for the new file. (fn OLD-FUNC &rest ARGS) (defalias 'lsp--on-set-visited-file-name #[385 "\203\301\302!\210\303\"\203\304 \210\207" [lsp--cur-workspace lsp--text-document-did-close t apply lsp--text-document-did-open] 5 (#$ . 320581)]) (advice-add 'set-visited-file-name :around 'lsp--on-set-visited-file-name) (defvar lsp--flushing-delayed-changes nil) #@77 Send MESSAGE to PROC without waiting for further output. (fn MESSAGE PROC) (defalias 'lsp--send-no-wait #[514 "\204\n\301\302 \210)\3031\304\"0\207\305\306\307!\"\207" [lsp--flushing-delayed-changes t lsp--flush-delayed-changes 'error process-send-string lsp--error "Sending to process failed with the following error: %s" error-message-string] 7 (#$ . 321082)]) (byte-code "\300\301\302\303#\210\300\304\305\306#\210\300\307\310\311#\210\300\312\313\314#\210\300\315\316\317#\207" [define-error lsp-parse-error "Error parsing message from language server" lsp-error lsp-unknown-message-type "Unknown message type" (lsp-error lsp-parse-error) lsp-unknown-json-rpc-version "Unknown JSON-RPC protocol version" (lsp-error lsp-parse-error) lsp-no-content-length "Content-Length header missing in message" (lsp-error lsp-parse-error) lsp-invalid-header-name "Invalid header name" (lsp-error lsp-parse-error)] 4) #@54 Get the message type from JSON-DATA. (fn JSON-DATA) (defalias 'lsp--get-message-type #[257 "\300!\203\301!\203\302\207\303!\203\304\207\305\207\306\207" [lsp:json-message-id\? lsp:json-message-error\? response-error lsp:json-message-method\? request response notification] 3 (#$ . 322004)]) (defconst lsp--default-notification-handlers (byte-code "\300\301\302\"\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\313#\210\303\315\313#\210\303\316\317#\210\207" [make-hash-table :test equal puthash "window/showMessage" lsp--window-show-message "window/logMessage" lsp--window-log-message "textDocument/publishDiagnostics" lsp--on-diagnostics "textDocument/diagnosticsEnd" ignore "textDocument/diagnosticsBegin" "telemetry/event" "$/progress" #[514 "\"\207" [lsp-progress-function] 5 "\n\n(fn WORKSPACE PARAMS)"]] 5)) #@68 Call the appropriate handler for NOTIFICATION. (fn INPUT0 INPUT1) (defalias 'lsp--on-notification #[514 "\305\306\"\305\307\"\310!>\204\311\312\313D\"\210\314H\211 \203+\315\316\317\320$\n\"\210\305\310! >\204<\311\312\321D\"\210\322H\"\206G\305\f\"\211\203R\211\"\207\205b\323\324\"?\205b\325\326\"\207" [cl-struct-lsp--workspace-tags lsp-print-io lsp--cur-workspace cl-struct-lsp--client-tags lsp--default-notification-handlers gethash "params" "method" type-of signal wrong-type-argument lsp--workspace 5 lsp--log-entry-new lsp--make-log-entry nil incoming-notif lsp--client 6 string-prefix-p "$" lsp-warn "Unknown notification: %s"] 13 (#$ . 322873)]) #@97 Get section configuration. PARAMS are the `workspace/configuration' request params (fn INPUT0) (defalias 'lsp--build-workspace-configuration-response #[257 "\300\301\"\302\303\304\305\"\"\207" [gethash "items" apply vector -map #[257 "\300\301\"\302\303\"\304\305\306\307\310#\"G\211\311X\203%\300\242\312!\313\314\315\"#\207\211\311V\205Q\312!\211\2053\211\205O\211\203N\203N\300\211A\262\242\316#\262\2027\266\202\207" [gethash "section" split-string "\\." s-join "." -slice 0 -1 1 lsp-configuration-section make-hash-table :test equal nil] 11 "\n\n(fn INPUT0)"]] 7 (#$ . 323566)]) #@106 Send the RESPONSE for REQUEST in WORKSPACE and log if needed. (fn WORKSPACE RECV-TIME REQUEST RESPONSE) (defalias 'lsp--send-request-response #[1028 "\302\303\"\302\304\"\302\305\"\306!>\204\307\310\311 D\"\210\312H\313\" \2051\314\315$ \205C\314\316\317\320!8\321\245% \203S\322\f\"\210\322\f\"\210\323\324!\"\207" [cl-struct-lsp--workspace-tags lsp-print-io gethash "params" "method" "id" type-of signal wrong-type-argument lsp--workspace 7 lsp--make-response lsp--make-log-entry incoming-req outgoing-resp 2 time-since 1000 lsp--log-entry-new lsp--send-no-wait lsp--make-message] 18 (#$ . 324182)]) #@139 Call the appropriate handler for REQUEST, and send the return value to the server. WORKSPACE is the active workspace. (fn INPUT0 INPUT1) (defalias 'lsp--on-request #[514 "\306\307\"\306\310\"\311 \312!>\204\313\314\315D\"\210\316H\312!>\2040\313\314\315D\"\210\317H\320\306\312! >\204F\313\314\321D\"\210\322H\320#\211\262\203Z\211\"\202\345\306\312! >\204l\313\314\321D\"\210\323H\320#\211\262\203\213\211\324\325\f  $#\210\326\202\345\327\267\202\332\330\331\332!\"\210\330\333\"\210\320\202\345\334!\335D\262\202\345\330\336\337!\"\210\330\340\"\210\320\202\345\341\3421\321\343\344\345 !\346\"\2100\202\333\347\350\351!\"\210\352\262D\202\345@\211\203\353\354\"\211\203\353\355\"\211\356\357\n\"!)\202 rq\210\360!)\262\202J\361\362\343\"r\211q\210\356\363\"\216\364\304!\210\365\366\365\312 !>\2043\313\314\315D\"\210\f\367H!\"\370 \210\360!\364\304!\210\320*\262\262)\202\345\306\312 !>\204b\313\314\315 D\"\210\316H\312! >\204u\313\314\321D\"\210\211\371H\262\372 \312! >\204\213\313\314\372D\"\210\211\373H\262\"\206\252\372 \312! >\204\245\313\314\372D\"\210\211\374H\262\375\376\377\201A\201B!\"\"\262\202\345\320\202\345@\203\326\201C\201D!\203\326\201D!\210\320\202\345\201E\201F\"\210\320\211\326=?\205\365\325 \n$\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags lsp--cur-workspace lsp--buffer-workspaces buffer-file-name cl-struct-lsp-session-tags gethash "params" "method" current-time type-of signal wrong-type-argument lsp--workspace 5 9 nil lsp--client 7 29 -partial lsp--send-request-response delay-response #s(hash-table size 8 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("client/registerCapability" 145 "window/showMessageRequest" 162 "client/unregisterCapability" 174 "workspace/applyEdit" 191 "workspace/configuration" 223 "workspace/workspaceFolders" 336 "window/workDoneProgress/create" 444 "workspace/semanticTokens/refresh" 448)) mapc lsp--server-register-capability lsp:registration-params-registrations #[257 "\301!\205&\302\303\"\211\203\302\304\"\211\305!)\202$rq\210\306 \210\307 )\262\207" [lsp--buffer-workspaces lsp-buffer-live-p plist-get :with-current-buffer :workspaces #[0 "\300 \210\301 \207" [lsp-unconfig-buffer lsp-configure-buffer] 1] lsp-unconfig-buffer lsp-configure-buffer] 5 "\n\n(fn BUF)"] lsp--window-log-message-request :title lsp--server-unregister-capability lsp:unregistration-params-unregisterations #[257 "\301!\205&\302\303\"\211\203\302\304\"\211\305!)\202$rq\210\306 \210\307 )\262\207" [lsp--buffer-workspaces lsp-buffer-live-p plist-get :with-current-buffer :workspaces #[0 "\300 \210\301 \207" [lsp-unconfig-buffer lsp-configure-buffer] 1] lsp-unconfig-buffer lsp-configure-buffer] 5 "\n\n(fn BUF)"] :applied (error) t lsp--apply-workspace-edit lsp:apply-workspace-edit-params-edit server-requested lsp--error "Failed to apply edits with message %s" error-message-string :json-false plist-get :with-current-buffer :workspaces make-closure #[0 "\301\300!\207" [V0 lsp--build-workspace-configuration-response] 2] lsp--build-workspace-configuration-response generate-new-buffer " *temp*" #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] make-local-variable expand-file-name "lsp-mode-temp" 4 hack-local-variables 15 lsp-session 3 1 apply vector -map lsp-semantic-tokens-enable #[257 "\300\301!D\207" [:uri lsp--path-to-uri] 4 "\n\n(fn FOLDER)"] -distinct fboundp lsp--semantic-tokens-on-refresh lsp-warn "Unknown request method: %s"] 19 (#$ . 324824)]) #@52 Format ERR as a user friendly string. (fn INPUT0) (defalias 'lsp--error-string #[257 "\301\302\"\301\303\"\304\305\306\"@\206\307#\207" [lsp--errors gethash "message" "code" format "Error from the Language Server: %s (%s)" alist-get "Unknown error"] 9 (#$ . 328464)]) #@16 (fn HEADERS) (defalias 'lsp--get-body-length #[257 "\300\301\"A\211\203 \302!\207\303\304!\207" [assoc "Content-Length" string-to-number error "No Content-Length header"] 4 (#$ . 328746)]) #@53 Parse string S as a LSP (KEY . VAL) header. (fn S) (defalias 'lsp--parse-header #[257 "\300\301\"\302\211\204\303\304C\"\210\305O\262\306T\302O!\262\307\232\203q\211\310\302\311\302T\211\262\203XGW\203XH\262\312V\204J\313W\203T\302\262\302\211\262\202U\311\204*\203a\266\202q\211\266\205\204q\314\315\316\317\"\302\211$\210B\207" [string-match ":" nil signal lsp-invalid-header-name 0 s-trim-left "Content-Length" -1 t 57 48 cl--assertion-failed (cl-loop for c across val when (or (> c 57) (< c 48)) return nil finally return t) format "Invalid Content-Length value: %s"] 11 (#$ . 328946)]) #@33 Read json string STR. (fn STR) (defalias 'lsp--read-json '(macro . #[257 "\300\301!\210\302\303!\203\303\304BB\207\305\306\307DE\207" [require json fboundp json-parse-string (:object-type (if lsp-use-plists 'plist 'hash-table) :null-object nil :false-object nil) let ((json-array-type 'vector) (json-object-type (if lsp-use-plists 'plist 'hash-table)) (json-false nil)) json-read-from-string] 5 (#$ . 329582)])) #@36 Read json from the current buffer. (defalias 'lsp-json-read-buffer '(macro . #[0 "\300\301!\210\302\303!\203\f\304\207\305\207" [require json fboundp json-parse-string (json-parse-buffer :object-type (if lsp-use-plists 'plist 'hash-table) :null-object nil :false-object nil) (let ((json-array-type 'vector) (json-object-type (if lsp-use-plists 'plist 'hash-table)) (json-false nil)) (json-read))] 2 (#$ . 330005)])) #@33 Read json file. (fn FILE-PATH) (defalias 'lsp--read-json-file #[257 "\301\302!\303\203 \304\202\305\306\307\310\307&\207" [lsp-use-plists json-parse-string f-read-text :object-type plist hash-table :null-object nil :false-object] 9 (#$ . 330428)]) #@89 Called when the parser P read a complete MSG from the server. (fn JSON-DATA WORKSPACE) (defalias 'lsp--parser-on-message #[514 "\30416\211\305! >\204\306\307\310D\"\210\211\311H\312!\211\205+\211;\203*\313!\202+\211\262\314!\315!\211\316\267\202.\204A\317\320!\210\321\305!\n>\204T\306\307\322D\"\210\323H\"\211A\262\242A@AA\262A@ \203\202\324\325  \326\327\330!8\331\245%\n\"\210\205\246\314 !!\210\332\305\n!\n>\204\241\306\307\322\fD\"\210 \323H\"\266\204\202/\204\263\317\320!\210\321\305!\n>\204\306\306\307\322D\"\210\323H\"A\211A\262\242\211A\262\242A@ \203\365\324\325 \333!\326\327\330!8\331\245%\n\"\210\205\333 !!\210\332\305\n!\n>\204\306\307\322\fD\"\210 \323H\"\266\204\202/\334\"\202/\335\"\202/\336\262\266\203)0\207\337\340\"\210\336\207" [lsp--cur-workspace cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags lsp-print-io (debug error) type-of signal wrong-type-argument lsp--workspace 5 lsp:json-response-id string-to-number lsp:json-response-result lsp--get-message-type #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (response 57 response-error 171 notification 286 request 294)) cl--assertion-failed id gethash lsp--client 8 lsp--log-entry-new lsp--make-log-entry incoming-resp 2 time-since 1000 remhash lsp:json-response-error-error lsp--on-notification lsp--on-request nil message "Error processing message %S."] 19 (#$ . 330689)]) #@139 This will store the string representation of the json message. In some cases like #1807 we lose information during json deserialization. (defvar lsp-parsed-message nil (#$ . 332190)) #@48 Make filter for the workspace. (fn WORKSPACE) (defalias 'lsp--create-filter-function #[257 "\300C\301C\301C\301C\301C\302\303&\207" [0 nil make-closure #[514 "\305\306\302\242!\203\f\202\302\242P\240\210\307\306\305\242!\204\303\242\204{\310\305\242\307\311*\312#)\266\203\211\203n\303\313\314\315\316\317\305\242\320\305\242\307\311*\312#)\266\203\206O\321\322!#\323\"\"!\240\210\301\324\240\210\302\307\240\210\305\317\305\242\325\\\"\240\266\202\302\305\242\240\210\305\307\240\266\202\326\305\242!\303\242\301\242Z\211W\203\233\317\305\242\324#\305\317\305\242\"\240\210\202\241\305\242\305\307\240\210\326!\304\304\242B\240\210\301\211\242\\\240\210Y\203\3271\n\330\331\311\"r\211q\210\332\333\"\216\334\335\304\242\302\307\240\210\303\307\240\210\301\307\240\210\304\307\240\210\237\"\210\336ed\337#\210eb\210\340\341+\203\364\342\202\365\343\344\307\345\307&B\211\262*\2620\266\202\346\347\302\242 P#\266\266\202\350\332\351\300\"\237\"\207" [V0 V1 V2 V3 V4 V5 s-blank\? nil " \n \n" t string-match lsp--get-body-length mapcar lsp--parse-header split-string substring-no-properties "Content-Length" error "Unable to find Content-Length header." " \n" 0 4 string-bytes (error) generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] apply insert decode-coding-region utf-8 json-parse-buffer :object-type plist hash-table :null-object :false-object lsp-warn "Failed to parse the following chunk:\n'''\n%s\n'''\nwith message %s" mapc #[257 "\301\300\"\207" [V0 lsp--parser-on-message] 4 "\n\n(fn MSG)"] inhibit-changing-match-data lsp-use-plists] 18 "\n\n(fn PROC INPUT)"]] 14 (#$ . 332380)]) #@90 Hash table with keys (line . col) and values that are either point positions or markers. (defvar lsp--line-col-to-point-hash-table nil (#$ . 334111)) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\210\314\315\316\317\310\320%\210\314\321\322\323\310\320%\207" [make-variable-buffer-local lsp--line-col-to-point-hash-table custom-declare-variable lsp-imenu-detailed-outline funcall function #[0 "\300\207" [t] 1] "Whether `lsp-imenu' should include signatures.\nThis will be ignored if the server doesn't provide the necessary\ninformation, for example if it doesn't support DocumentSymbols." :group lsp-imenu :type boolean custom-declare-face lsp-details-face ((t :height 0.8 :inherit shadow)) "Used to display additional information troughout `lsp'.\nThings like line numbers, signatures, ... are considered\nadditional information. Often, additional faces are defined that\ninherit from this face by default, like `lsp-signature-face', and\nthey may be customized for finer control." lsp-mode lsp-signature-face ((t :inherit lsp-details-face)) "Used to display signatures in `imenu', ...."] 8) #@151 Render INPUT0, an `&DocumentSymbol', to a string. If SHOW-DETAIL? is set, make use of its `:detail?' field (often the signature). (fn INPUT0 INPUT1) (defalias 'lsp-render-symbol #[514 "\300\301\"\300\302\"\300\303\"\211\205 \304!\205 \305\306\307!P\310\311#\203,\305\310\312#\202-\211P\207" [gethash "name" "detail" "deprecated" s-present\? propertize " " s-trim-left face lsp-signature-face lsp-face-semhl-deprecated] 11 (#$ . 335237)]) #@186 Render a piece of SymbolInformation. Handle :deprecated?. If SEPARATOR is non-nil, the symbol's (optional) parent, SEPARATOR and the symbol itself are concatenated. (fn INPUT0 INPUT1) (defalias 'lsp-render-symbol-information #[514 "\300\301\"\300\302\"\300\303\"\211\203$\203$\211\304\230\262\204$Q\262\203.\305\306\307#\207\207" [gethash "name" "deprecated" "containerName" "" propertize face lsp-face-semhl-deprecated] 10 (#$ . 335697)]) #@125 Convert SYM to imenu element. SYM is a SymbolInformation message. Return a cons cell (full-name . start-point). (fn SYM) (defalias 'lsp--symbol-to-imenu-elem #[257 "\303\304!\305#\306 \205\n\"B\207" [lsp--line-col-to-point-hash-table lsp-imenu-show-container-name lsp-imenu-container-name-separator gethash lsp--get-line-and-col nil lsp-render-symbol-information] 5 (#$ . 336163)]) #@331 Convert SYM to hierarchical imenu elements. SYM is a DocumentSymbol message. Return cons cell ("symbol-name (symbol-kind)" . start-point) if SYM doesn't have any children. Otherwise return a cons cell with an alist ("symbol-name" . (("(symbol-kind)" . start-point) cons-cells-from-children)) (fn INPUT0) (defalias 'lsp--symbol-to-hierarchical-imenu-elem #[257 "\211\302\303\"\304!\305\"\306!\203\211\302\307! \310#B\207\211\311!B\207" [lsp-imenu-detailed-outline lsp--line-col-to-point-hash-table gethash "children" lsp--imenu-filter-symbols lsp-render-symbol seq-empty-p lsp--get-line-and-col nil lsp--imenu-create-hierarchical-index] 10 (#$ . 336561)]) #@79 Determine if SYM is for the current document and is to be shown. (fn INPUT0) (defalias 'lsp--symbol-ignore #[257 "\302\303\"\302\304\"\203+\247\203+\305\306 G#\203\202\306\307 H\"?\262\2069\211\2059\310\311\312!!!p=?\207" [lsp-imenu-index-symbol-kinds lsp/symbol-kind-lookup gethash "kind" "location" < 0 memql find-buffer-visiting lsp--uri-to-path lsp:location-uri] 7 (#$ . 337258)]) #@50 The string name of the kind of SYM. (fn INPUT0) (defalias 'lsp--get-symbol-type #[257 "\301\302\"\303\304#\207" [lsp-symbol-kinds gethash "kind" alist-get "Other"] 6 (#$ . 337668)]) #@60 Obtain the line and column corresponding to SYM. (fn SYM) (defalias 'lsp--get-line-and-col #[257 "\300!\211\203 \301!\206\302!\303\304\"\303\305\"\303\306\"B\207" [lsp:symbol-information-location lsp:location-range lsp:document-symbol-selection-range gethash "start" "line" "character"] 8 (#$ . 337860)]) #@84 Return a sorted list ((line . col) ...) of the locations of SYMBOLS. (fn SYMBOLS) (defalias 'lsp--collect-lines-and-cols #[257 "\300\301\"\302\203+\211A\262\242\303!B\262\304\305!!\204'\306\305!!\244\262\210\202\307\310\"\207" [mapcar identity nil lsp--get-line-and-col seq-empty-p lsp:document-symbol-children\? lsp--imenu-filter-symbols -sort lsp--line-col-comparator] 7 (#$ . 338183)]) #@113 Convert a sorted list of positions from line-column representation to point representation. (fn LINE-COL-LIST) (defalias 'lsp--convert-line-col-to-points-batch #[257 "\303\304\305\"\306\307 \203d\212eb\210\310\211:\203^@\262\211A\262\242\262\211Zy\210\211\262\311 \203:`ZV\203A\211b\266\202Eu\266\312B\n\203R\313 \202S`#\210A\262\202\266)\202\276\306\214~\210\212eb\210\310\211:\203\273@\262\211A\262\242\262\211Zy\210\211\262\311 \203\227`ZV\203\236\211b\266\202\242u\266\312B\n\203\257\313 \202\260`#\210A\262\202p\266+)\207" [inhibit-field-text-motion lsp--already-widened imenu-use-markers make-hash-table :test equal t 0 nil line-end-position puthash point-marker] 11 (#$ . 338596)]) #@28 (fn (L1 . C1) (L2 . C2)) (defalias 'lsp--line-col-comparator #[128 "\211G\300U\203\211A\262\242\202\301\302\303GD\"\211\203$\211A\262\242\202+\301\302\303GD\"\242\211\203:\211A\262\242\202A\301\302\303GD\"W\206^U\205^\203Y\203YW\207\205^\304\207" [2 signal wrong-number-of-arguments lsp--line-col-comparator t] 8 (#$ . 339357)]) #@254 Create imenu index from document SYMBOLS. This function, unlike `lsp-imenu-create-categorized-index', does not categorize by type, but instead returns an `imenu' index corresponding to the symbol hierarchy returned by the server directly. (fn SYMBOLS) (defalias 'lsp-imenu-create-uncategorized-index #[257 "\301\302!!\303!\203\304!\202\305!)\207" [lsp--line-col-to-point-hash-table lsp--convert-line-col-to-points-batch lsp--collect-lines-and-cols lsp--imenu-hierarchical-p lsp--imenu-create-hierarchical-index lsp--imenu-create-non-hierarchical-index] 4 (#$ . 339727)]) (byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable lsp-imenu-symbol-kinds funcall function #[0 "\300\207" [((1 . "Files") (2 . "Modules") (3 . "Namespaces") (4 . "Packages") (5 . "Classes") (6 . "Methods") (7 . "Properties") (8 . "Fields") (9 . "Constructors") (10 . "Enums") (11 . "Interfaces") (12 . "Functions") (13 . "Variables") (14 . "Constants") (15 . "Strings") (16 . "Numbers") (17 . "Booleans") (18 . "Arrays") (19 . "Objects") (20 . "Keys") (21 . "Nulls") (22 . "Enum Members") (23 . "Structs") (24 . "Events") (25 . "Operators") (26 . "Type Parameters"))] 1] "`lsp-symbol-kinds', but only used by `imenu'.\nA new variable is needed, as it is `imenu' convention to use\npluralized categories, which `lsp-symbol-kinds' doesn't. If the\nnon-pluralized names are preferred, this can be set to\n`lsp-symbol-kinds'." :type (alist :key-type integer :value-type string)] 6) #@13 (fn KIND) (defalias 'lsp--imenu-kind->name #[257 "\301\302#\207" [lsp-imenu-symbol-kinds alist-get "?"] 5 (#$ . 341219)]) #@227 Create an `imenu' index categorizing SYMBOLS by type. Only root symbols are categorized. See `lsp-symbol-kinds' to customize the category naming. SYMBOLS shall be a list of DocumentSymbols or SymbolInformation. (fn SYMBOLS) (defalias 'lsp-imenu-create-top-level-categorized-index #[257 "\300\301\302\303\304\"\305\"\"\207" [mapcan #[257 "\211\211A\262\242\300!\301!\203BC\207\207" [lsp--imenu-kind->name lsp-imenu-create-uncategorized-index] 8 "\n\n(fn INPUT0)"] sort seq-group-by lsp:document-symbol-kind #[514 "@@W\207" [] 6 "\n\n(fn INPUT0 INPUT1)"]] 7 (#$ . 341352)]) #@64 Convert an `&DocumentSymbol' to an `imenu' entry. (fn INPUT0) (defalias 'lsp--symbol->imenu #[257 "\211\301\302\303\304\"\305\"!\306\"B\207" [lsp-imenu-detailed-outline lsp--position-to-point lsp-get gethash "selectionRange" :start lsp-render-symbol] 7 (#$ . 341947)]) #@127 Returns an `imenu' index from SYMBOLS categorized by type. The result looks like this: (("Variables" . (...))). (fn SYMBOLS) (defalias 'lsp--imenu-create-categorized-index-1 #[257 "\300\301\302\303\304\305\"\"\"\207" [mapcar #[257 "\211\211A\262\242\300\301\"B\207" [mapcan cdr] 8 "\n\n(fn INPUT0)"] -group-by car mapcan #[257 "\211\301\302\"\301\303\"\304!\203\305!DC\207\306\"\305!D\307\310\311\"\312\313\314!\"\"B\207" [lsp-imenu-detailed-outline gethash "kind" "children" seq-empty-p lsp--symbol->imenu lsp-render-symbol mapcar make-closure #[257 "\211\211A\262\242\300\301\302\"BD\207" [V0 mapcan cdr] 9 "\n\n(fn INPUT0)"] -group-by car lsp--imenu-create-categorized-index-1] 12 "\n\n(fn INPUT0)"]] 8 (#$ . 342228)]) #@16 (fn SYMBOLS) (defalias 'lsp--imenu-create-categorized-index #[257 "\300!\211\211\203\211@\211\301@!\240\210A\266\202\202\210\207" [lsp--imenu-create-categorized-index-1 lsp--imenu-kind->name] 7 (#$ . 342983)]) #@15 (fn INPUT0) (defalias 'lsp--symbol-information->imenu #[257 "\211\300\301\302\303\302\304\"\"\305\"!\306\307\"B\207" [lsp--position-to-point lsp-get gethash "range" "location" :start lsp-render-symbol-information nil] 9 (#$ . 343208)]) #@70 Create a kind-categorized index for SymbolInformation. (fn SYMBOLS) (defalias 'lsp--imenu-create-categorized-index-flat #[257 "\300\301\302\303\"\"\207" [mapcar #[257 "\211\211A\262\242\300!\301\302\303\304\"\"B\207" [lsp--imenu-kind->name mapcan #[257 "\211\211A\262\242\300\301\"\203BC\207\207" [mapcar lsp--symbol-information->imenu] 7 "\n\n(fn INPUT0)"] -group-by lsp:symbol-information-container-name\?] 10 "\n\n(fn INPUT0)"] seq-group-by lsp:symbol-information-kind] 6 (#$ . 343456)]) #@16 (fn SYMBOLS) (defalias 'lsp-imenu-create-categorized-index #[257 "\300!\203\n\301!\207\302!\207" [lsp--imenu-hierarchical-p lsp--imenu-create-categorized-index lsp--imenu-create-categorized-index-flat] 3 (#$ . 343969)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable lsp-imenu-index-function funcall function #[0 "\300\207" [lsp-imenu-create-uncategorized-index] 1] "Function that should create an `imenu' index.\nIt will be called with a list of SymbolInformation or\nDocumentSymbols, whose first level is already filtered. It shall\nthen return an appropriate `imenu' index (see\n`imenu-create-index-function').\n\nNote that this interface is not stable, and subject to change any\ntime." :group lsp-imenu :type (radio (const :tag "Categorize by type" lsp-imenu-create-categorized-index) (const :tag "Categorize root symbols by type" lsp-imenu-create-top-level-categorized-index) (const :tag "Uncategorized, inline entries" lsp-imenu-create-uncategorized-index) (function :tag "Custom function"))] 8) #@92 Create an `imenu' index based on the language server. Respects `lsp-imenu-index-function'. (defalias 'lsp--imenu-create-index #[0 "\301\302 !!\207" [lsp-imenu-index-function lsp--imenu-filter-symbols lsp--get-document-symbols] 3 (#$ . 345024)]) #@60 Filter out unsupported symbols from SYMBOLS. (fn SYMBOLS) (defalias 'lsp--imenu-filter-symbols #[257 "\300\301\"\207" [seq-remove lsp--symbol-ignore] 4 (#$ . 345277)]) #@70 Determine whether any element in SYMBOLS has children. (fn SYMBOLS) (defalias 'lsp--imenu-hierarchical-p #[257 "\300\301\"\207" [seq-some lsp-document-symbol\?] 4 (#$ . 345453)]) #@445 Create imenu index for non-hierarchical SYMBOLS. SYMBOLS are a list of DocumentSymbol messages. Return a nested alist keyed by symbol names. e.g. (("SomeClass" ("(Class)" . 10) ("someField (Field)" . 20) ("someFunction (Function)" . 25) ("SomeSubClass" ("(Class)" . 30) ("someSubField (Field)" . 35)) ("someFunction (Function)" . 40)) (fn SYMBOLS) (defalias 'lsp--imenu-create-non-hierarchical-index #[257 "\300\301\302\303\"\"\207" [seq-map #[257 "\211@\300\301A\"B\207" [seq-map lsp--symbol-to-imenu-elem] 5 "\n\n(fn NESTED-ALIST)"] seq-group-by lsp--get-symbol-type] 6 (#$ . 345641)]) #@441 Create imenu index for hierarchical SYMBOLS. SYMBOLS are a list of DocumentSymbol messages. Return a nested alist keyed by symbol names. e.g. (("SomeClass" ("(Class)" . 10) ("someField (Field)" . 20) ("someFunction (Function)" . 25) ("SomeSubClass" ("(Class)" . 30) ("someSubField (Field)" . 35)) ("someFunction (Function)" . 40)) (fn SYMBOLS) (defalias 'lsp--imenu-create-hierarchical-index #[257 "\300\301\302\303\"\"\207" [seq-map lsp--symbol-to-hierarchical-imenu-elem seq-sort lsp--imenu-symbol-lessp] 6 (#$ . 346334)]) #@18 (fn SYM1 SYM2) (defalias 'lsp--imenu-symbol-lessp #[514 "\301\302\303#\"\304\305\306#\211\247\205\211\306W\207" [lsp-imenu-sort-methods mapcar make-closure #[257 "\303\n\"\300\301\"\207" [V0 V1 lsp--imenu-compare-function-alist alist-get] 4 "\n\n(fn METHOD)"] seq-find #[257 "\211\300U?\207" [0] 3 "\n\n(fn RESULT)"] 0] 7 (#$ . 346962)]) #@52 Compare SYM1 and SYM2 by kind. (fn INPUT0 INPUT1) (defalias 'lsp--imenu-compare-kind #[514 "\300\301\"\300\301\"Z\207" [gethash "kind"] 6 (#$ . 347315)]) #@18 (fn SYM1 SYM2) (defalias 'lsp--imenu-compare-line-col #[514 "\300\301!\301!\"\203 \302\207\303\207" [lsp--line-col-comparator lsp--get-line-and-col -1 1] 6 (#$ . 347480)]) #@52 Compare SYM1 and SYM2 by name. (fn INPUT0 INPUT1) (defalias 'lsp--imenu-compare-name #[514 "\300\301\"\300\301\"\302\303G\303G&\211\247\203\207\303\207" [gethash "name" compare-strings 0] 11 (#$ . 347663)]) #@32 Force Imenu to refresh itself. (defalias 'lsp--imenu-refresh #[0 "\301!\207" [imenu--rescan-item imenu--menubar-select] 2 (#$ . 347887)]) #@39 Use lsp-imenu for the current buffer. (defalias 'lsp-enable-imenu #[0 "\304 \210\305\300!\210\306\305\301!\210\307\305\302!\210\310 \205\311 \207" [imenu-create-index-function imenu-menubar-modified-tick imenu--index-alist menu-bar-mode imenu--cleanup make-local-variable lsp--imenu-create-index -1 nil lsp--imenu-refresh] 2 (#$ . 348032)]) #@47 Resolve final function COMMAND. (fn COMMAND) (defalias 'lsp-resolve-final-function #[257 "\300!\203 \211 \202\f\211\211<\203\"\301\302\303!\"\204!\304\305\306\307\211$\210\207\211;\203*\211C\207\310\311\312#\2053\307\207" [functionp seq-every-p apply-partially stringp cl--assertion-failed (seq-every-p (apply-partially #'stringp) command) "Invalid command list" nil error "cl-etypecase failed: %s, %s" (list string)] 7 (#$ . 348384)]) #@61 Check whether FINAL-COMMAND is present. (fn FINAL-COMMAND) (defalias 'lsp-server-present\? #[257 "\302!\204 \303@!\202\304\305 \"\203\303@\302!\"\202\306\203.\306\307\310\311\312\"\"\210\2067\313\307\314\311\312\"\"\210\207" [default-directory emacs-version file-remote-p executable-find version<= "27.0" t lsp-log "Command \"%s\" is present on the path." s-join " " nil "Command \"%s\" is not present on the path."] 7 (#$ . 348836)]) #@92 Convert VALUE to a string that can be set as value in an environment variable. (fn VALUE) (defalias 'lsp--value-to-string #[257 "\211;\203\207\300!\203\211\203\301\207\302\207\303!\203)\304\305\"\203)\211\306\307\310#\207\311\312!\207" [booleanp "1" "0" sequencep seq-every-p stringp ":" mapconcat identity user-error "Only strings, booleans, and sequences of strings are supported as environment variables"] 7 (#$ . 349293)]) #@146 Append a list of KEY=VALUE from the alist ENVIRONMENT to `process-environment'. Ignore non-boolean keys whose value is nil. (fn ENVIRONMENT-FN) (defalias 'lsp--compute-process-environment #[257 "\211\205\211 \301\302\211\211:\203>@\262\211A\262\242\262\303!\204*\304N\305=\2037\306\307\303!!QB\262A\262\202 \211\237\266\204B!\207" [process-environment -flatten nil eval custom-type boolean "=" lsp--value-to-string] 12 (#$ . 349741)]) #@629 Returns a connection property list using COMMAND. COMMAND can be: A string, denoting the command to launch the language server. A list of strings, denoting an executable with its command line arguments. A function, that either returns a string or a list of strings. In all cases, the launched language server should send and receive messages on standard I/O. TEST-COMMAND is a function with no arguments which returns whether the command is present or not. When not specified `lsp-mode' will check whether the first element of the list returned by COMMAND is available via `executable-find' (fn COMMAND &optional TEST-COMMAND) (defalias 'lsp-stdio-connection #[513 ";\204\"\300!\204\"<\203\301\302\"\262\204\"\303\304\305\306E\"\210\307\310\311\"\312\2061\310\313\"F\207" [functionp seq-every-p #[257 "\211;\207" [] 2 "\n\n(fn EL)"] signal wrong-type-argument (or string function (and list (satisfies (lambda (l) (seq-every-p (lambda (el) (stringp el)) l))))) command :connect make-closure #[1028 "\302\300!\303!\304!\305\306\"\307\310\311\312\313\305\314 \"\315\316\317\f\320\321\322\323\324&\325\326\"\210\325\327!\326\"\210r\330!q\210\331 \210)\211B\266\202)\207" [V0 process-environment lsp-resolve-final-function generate-new-buffer-name lsp--compute-process-environment format "*%s::stderr*" make-process :name :connection-type pipe :buffer "*%s*" :coding no-conversion :command :filter :sentinel :stderr :noquery t set-process-query-on-exit-flag nil get-buffer-process get-buffer special-mode] 26 "\n\n(fn FILTER SENTINEL NAME ENVIRONMENT-FN)"] :test\? #[0 "\301\302\300!!\207" [V0 lsp-server-present\? lsp-resolve-final-function] 3]] 8 (#$ . 350207)]) #@207 Open network stream to HOST:PORT. NAME will be passed to `open-network-stream'. RETRY-COUNT is the number of the retries. SLEEP-INTERVAL is the sleep interval between each retry. (fn HOST PORT NAME) (defalias 'lsp--open-network-stream #[771 "\302\303\303\245\304\211\204EW\203E\3051)\306\304  \307\310\311\312&\211\2620\210\202\313\314\315  \316!$\210\317!\210T\211\262)\266\202\211\206N\320\321\"\207" [lsp-tcp-connection-timeout inhibit-message 0 0.01 nil (file-error) open-network-stream :type plain :coding no-conversion t lsp--warn "Failed to connect to %s:%s with error message %s" error-message-string sleep-for error "Port %s was never taken. Consider increasing `lsp-tcp-connection-timeout'."] 16 (#$ . 351910)]) #@83 Find available port on HOST starting from STARTING-PORT. (fn HOST STARTING-PORT) (defalias 'lsp--find-available-port #[514 "\300\204*\3011!\302\303\304\300\305\306&!\210\211T\211\2620\210\202\307\211\262\266\202\207" [nil (file-error) delete-process open-network-stream "*connection-test*" :type plain t] 12 (#$ . 352671)]) #@285 Returns a connection property list similar to `lsp-stdio-connection'. COMMAND-FN can only be a function that takes a single argument, a port number. It should return a command for launches a language server process listening for TCP connections on the provided port. (fn COMMAND-FN) (defalias 'lsp-tcp-connection #[257 "\300!\204\301\302\303\304E\"\210\305\306\307\"\310\306\311\"F\207" [functionp signal wrong-type-argument function command-fn :connect make-closure #[1028 "\303\304 T\211\"\300!\211:\203\211\202\211C\305\306@!\204%\307\310\311@\"!\210\312!\313\314\315\316\317\320\321 \322\323\310\324\"\325\326&\327\304 \330P#\331\305\"\210\331\305\"\210\332 \"\210\211)B\207" [V0 lsp--tcp-port process-environment lsp--find-available-port "localhost" nil executable-find user-error format "Couldn't find executable %s" lsp--compute-process-environment make-process :name :connection-type pipe :coding no-conversion :command :sentinel :stderr "*%s::stderr*" :noquery t lsp--open-network-stream "::tcp" set-process-query-on-exit-flag set-process-filter] 23 "\n\n(fn FILTER SENTINEL NAME ENVIRONMENT-FN)"] :test\? #[0 "\301\300\302!@!\207" [V0 executable-find 0] 3]] 7 (#$ . 353018)]) (defalias 'lsp-tcp-server 'lsp-tcp-server-command) #@227 Create tcp server connection. In this mode Emacs is TCP server and the language server connects to it. COMMAND is function with one parameter(the port) and it should return the command to start the LS server. (fn COMMAND-FN) (defalias 'lsp-tcp-server-command #[257 "\300!\204\301\302\303\304E\"\210\305\306\307\"\310\306\311\"F\207" [functionp signal wrong-type-argument function command-fn :connect make-closure #[1028 "\304C\305\306\307\310\"\311\307\310\"\312\313\314 \315\316\317 #\320\321&\f\322\314\"\300!\323!\324\306\325\326\327\330\331\332\307\333\"\334\321&\f\335\242\204_\211\336 _W\203_\337\340 #\210\341\342!\210\211T\262\202@\210\242\204\206\3431q\344!0\210\202r\210\3451~\344!0\210\202\210\346\347#\210\337\350\"\210\351\304\"\210\351\242\304\"\210\351\304\"\210\352\242\n\"\210\353\242 \"\210\242)B\207" [V0 lsp--tcp-server-port process-environment lsp--tcp-server-wait-seconds nil make-network-process :name format "*tcp-server-%s*" :buffer :family ipv4 :service :sentinel make-closure #[514 "\302\303\300\"\210\301\240\207" [V0 V1 lsp-log "Language server %s is connected."] 5 "\n\n(fn PROC STRING)"] :server t process-contact lsp--compute-process-environment make-process :connection-type pipe :coding no-conversion :command :stderr "*tcp-server-%s*::stderr" :noquery 0 2 lsp--info "Waiting for connection for %s, retries: %s" sit-for 0.5 (error) delete-process (error) error "Failed to create connection to %s on port %s" "Successfully connected to %s" set-process-query-on-exit-flag set-process-filter set-process-sentinel] 21 "\n\n(fn FILTER SENTINEL NAME ENVIRONMENT-FN)"] :test\? #[0 "\301\300\302!@!\207" [V0 executable-find 0] 3]] 7 (#$ . 354296)]) #@192 Create LSP stdio connection named name. LOCAL-COMMAND is either list of strings, string or function which returns the command to execute. (fn LOCAL-COMMAND &optional GENERATE-ERROR-FILE-FN) (defalias 'lsp-tramp-connection #[513 "\300\301\302#\303\301\304\"F\207" [:connect make-closure #[1028 "\304\300!\305!\306\307\310\311\312\301\203\301\n!\206 \313\314 \nT\211#PC#\"\315!\316\313\317\"#\320\"\210\321 \"\210\322\323\"\210\324\325\211#\210\211B\262)\207" [V0 V1 lsp--stderr-index process-environment lsp-resolve-final-function generate-new-buffer-name s-join " " append ("stty" "raw" ";") "2>" format "/tmp/%s-%s-stderr" lsp--compute-process-environment start-file-process-shell-command "*%s*" set-process-sentinel set-process-filter set-process-query-on-exit-flag nil set-process-coding-system binary] 17 "\n\n(fn FILTER SENTINEL NAME ENVIRONMENT-FN)"] :test\? #[0 "\301\302\300!!\207" [V0 lsp-server-present\? lsp-resolve-final-function] 3]] 8 (#$ . 356033)]) #@75 Autoconfigure `company', `flycheck', `lsp-ui', etc if they are installed. (defalias 'lsp--auto-configure #[0 "\306\307!\203 \307 \210\203\310\311\312\"\210 \203\310\311\313\"\210\n\203$\310\311\314\"\210 \203-\310\311\315\"\210\f\2036\310\311\316\"\210 \203?\310\311\317\"\210\320\321!\210\322\211\207" [lsp-headerline-breadcrumb-enable lsp-modeline-code-actions-enable lsp-modeline-diagnostics-enable lsp-modeline-workspace-status-enable lsp-lens-enable lsp-semantic-tokens-enable functionp lsp-ui-mode add-hook lsp-configure-hook lsp-headerline-breadcrumb-mode lsp-modeline-code-actions-mode lsp-modeline-diagnostics-mode lsp-modeline-workspace-status-mode lsp-lens--enable lsp-semantic-tokens--enable make-local-variable yas-inhibit-overlay-modification-protection t] 3 (#$ . 357031)]) #@47 Whether buffer was loaded via `lsp-deferred'. (defvar lsp--buffer-deferred nil (#$ . 357838)) (make-variable-buffer-local 'lsp--buffer-deferred) #@48 Handler restart for WORKSPACE. (fn WORKSPACE) (defalias 'lsp--restart-if-needed #[257 "\304=\204F\305! >\204\306\307\310D\"\210\211\311H\312=\204F\313=\205\250\314\315\316!\317\305! >\2049\306\307\310D\"\210\320H!#\321!\262\205\250\305! >\204U\306\307\310D\"\210\211\322H\323\324\211\205\246\211A\262\242\262\262T\262\325!\203[\326\327\"\211\203\212\326\330\"\211\331!\210)\210\202[rq\210 \203\230\332 \210\202\241\333\334\335 \"\210\336 \210)\210\202[\266\204\207" [lsp-restart cl-struct-lsp--workspace-tags lsp--buffer-workspaces lsp--buffer-deferred auto-restart type-of signal wrong-type-argument lsp--workspace 19 restart interactive format "Server %s exited with status %s(check corresponding stderr buffer for details). Do you want to restart it?" lsp--workspace-print process-status 7 y-or-n-p 9 0 nil lsp-buffer-live-p plist-get :with-current-buffer :workspaces #[0 "\203\301 \207\302\303\304 \"\210\305 \207" [lsp--buffer-deferred lsp-deferred lsp--info #1="Restarting LSP in buffer %s" buffer-name lsp] 3] lsp-deferred lsp--info #1# buffer-name lsp] 9 (#$ . 357989)]) #@69 Apply FN on value corresponding to KEY in TABLE. (fn TABLE KEY FN) (defalias 'lsp--update-key #[771 "\300\"!\211\203\301#\207\302\"\207" [gethash puthash remhash] 9 (#$ . 359119)]) #@69 Create the sentinel for WORKSPACE. (fn WORKSPACE PROCESS EXIT-STR) (defalias 'lsp--process-sentinel #[771 "\304!?\205A\305!\306 \307!>\204\310\311\306D\"\210\211\312H\262\313\314\307! >\2043\310\311\315 D\"\210\316H!!\317\320\314\307 ! >\204M\310\311\315 D\"\210\316H!\321!#\210\307! >\204k\310\311\315D\"\210\322H\323\324\211\203\275\211A\262\242\262\262T\262\325!\203q\326\327\"\211\203\244\326\330\"\211\331\332 \"!\210)\210\202qrq\210\333 \"\334 \210\335 \210\336\337!\210)\210\202q\266\324C\340\331\341\"\"\210\211\242\237\266\202\323\324\211\203\363\211A\262\242\262\262T\262\342\343\333\"#\210\202\322\266\344=\203 \345!\323U\203 \346!\203 \347!\210)\350\351\"\210\307! >\204%\310\311\315D\"\210\352H\353=\2038\354\355\356!\"\210\202=\357!\210\360 \266\203\207" [cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags lsp--cur-workspace lsp--buffer-workspaces process-live-p process-status lsp-session type-of signal wrong-type-argument 4 get-buffer process-name lsp--workspace 7 lsp--warn "%s has exited (%s)" string-trim-right 9 0 nil lsp-buffer-live-p plist-get :with-current-buffer :workspaces make-closure #[0 "\302\300 \"\303 \210\304 \210\305\306!\207" [V0 lsp--buffer-workspaces delete lsp--uninitialize-workspace lsp--spinner-stop lsp--remove-overlays lsp-highlight] 3] delete lsp--uninitialize-workspace lsp--spinner-stop lsp--remove-overlays lsp-highlight maphash #[514 "\300\300\242B\240\207" [V0] 5 "\n\n(fn K --CL-VAR--)"] lsp--update-key apply-partially exit process-exit-status buffer-live-p kill-buffer run-hook-with-args lsp-after-uninitialized-functions 19 shutdown lsp--info "Workspace %s shutdown." lsp--workspace-print lsp--restart-if-needed lsp--cleanup-hanging-watches] 16 (#$ . 359320)]) #@63 Return all folders associated with WORKSPACE. (fn WORKSPACE) (defalias 'lsp-workspace-folders #[257 "\301C\302\303\304#\305 \306!>\204\307\310\305D\"\210\211\311H\262\"\210\211\242\207" [cl-struct-lsp-session-tags nil maphash make-closure #[514 "\302\300\"\205 \301\301\242B\240\207" [V0 V1 -contains\?] 5 "\n\n(fn FOLDER WORKSPACES)"] lsp-session type-of signal wrong-type-argument 4] 9 (#$ . 361144)]) #@223 Create new workspace for CLIENT-TEMPLATE with project root ROOT. INITIALIZATION-OPTIONS are passed to initialize function. SESSION is the active session. (fn SESSION CLIENT-TEMPLATE ROOT &optional INITIALIZATION-OPTIONS) (defalias 'lsp--start-workspace #[1027 "\306 \210\307!\310\311\312\313\314\315\316 C\317\320 !&\n\321! >\204)\322\323\324D\"\210\325H\321! >\204;\322\323\324D\"\210\326H\321! >\204N\322\323\324D\"\210\327H\321! >\204a\322\323\324D\"\210\330H\321! >\204u\322\323\324D\"\210\331H\321! >\204\211\322\323\324 D\"\210\332H\333\334\"\206\231\335\336 \"\337!\340\341\n\"\342\343\n\"$\211A\262\242\344 \321!\n>\204\305\322\323\345D\"\210\327H\"\321 ! >\204\333\322\323\346 D\"\210\n\211\347I\266\321 ! >\204\364\322\323\346 D\"\210\n\211\350I\266\351\352\353#\206 C\"\210\n\354\355!\210\356\357\360\361\362\363\364\365!!\366\367\370\371\372 F\373\374!\375\376!\377\201@\201A\257 \205E\201B D\n\205b\201C\201D\201E\201F\201G\201H !\"\"D#\352\201I\n#\201J\201K%\210)\n)\207" [default-directory cl-struct-lsp--client-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags lsp--cur-workspace lsp-server-trace lsp--spinner-start copy-lsp--client make-lsp--workspace :root :client :status starting :buffers lsp-current-buffer :host-root file-remote-p type-of signal wrong-type-argument lsp--client 15 27 3 19 16 22 plist-get :connect user-error "Client %s is configured incorrectly" lsp--create-filter-function apply-partially lsp--process-sentinel format "%s" gethash lsp-session lsp--workspace 7 8 mapc make-closure #[257 "\301\303\300!\n>\204\304\305\306\300D\"\210\300\307H\310\311\"\312\"\203&\211\202)B\262#\207" [V0 V1 cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp-session 4 puthash gethash memql] 10 "\n\n(fn PROJECT-ROOT)"] run-hooks lsp-before-initialize-hook lsp-request-async "initialize" append :processId nil :rootPath lsp-file-local-name expand-file-name :clientInfo :name "emacs" :version emacs-version :rootUri lsp--path-to-uri :capabilities lsp--client-capabilities :initializationOptions :workDoneToken "1" :trace :workspaceFolders apply vector -map #[257 "\300\301!\302\303!F\207" [:uri lsp--path-to-uri :name f-filename] 6 "\n\n(fn FOLDER)"] -distinct #[257 "\211\204 \306 \210\307\310\311C\"\210\312!\313 \211\205\314!\262\211\205%\315\316\317#\262\211\2050\315\320\317#\262\211\205;\315\321\317#\262\322!\205H\315\323\317#\322!\203]\324!\325U\203]\326\327!\"\210\330\300!\f>\204l\307\331\332\300D\"\210\300\211\333I\266\330\300!\f>\204\202\307\331\332\300D\"\210\300\211\334\335I\266\300\336\337,\"\210)\301\203\232\301\300!\210\330\300!\f>\204\251\307\331\332\300D\"\210\300\211\340\341\342\330\300!\f>\204\275\307\331\332\300D\"\210\300\340H\"I\266\343\344\345\300\"\330\300!\f>\204\330\307\331\332\300D\"\210\300\340H\"\210\300\346\347!\210)\350\351\352\300!\353\300!#)\207" [V0 V1 json-object-type lsp-parsed-message cl-struct-lsp--workspace-tags lsp--cur-workspace lsp--spinner-stop signal lsp-empty-response-error "initialize" lsp:initialize-result-capabilities hash-table json-read-from-string gethash "result" nil "capabilities" "textDocumentSync" ht\? "save" hash-table-count 0 lsp:set-text-document-sync-options-save\? lsp:server-capabilities-text-document-sync\? type-of wrong-type-argument lsp--workspace 2 13 initialized lsp-notify "initialized" 9 -filter lsp-buffer-live-p mapc make-closure #[257 "\302\303\"\211\203\302\304\"\211\305\306\300\"!)\207rq\210\307\300!)\207" [V0 lsp--buffer-workspaces plist-get :with-current-buffer :workspaces make-closure #[0 "\301\300!\207" [V0 lsp--open-in-workspace] 2] lsp--open-in-workspace] 6 "\n\n(fn BUFFER)"] run-hooks lsp-after-initialize-hook lsp--info "%s initialized successfully in folders: %s" lsp--workspace-print lsp-workspace-folders lsp--empty-ht] 13 "\n\n(fn RESPONSE)"] :mode detached] 33 (#$ . 361567)]) #@23 Load default session. (defalias 'lsp--load-default-session #[0 "\3021 \303!0\202\304\305\306!\"\210\307\262\206\310 \211\207" [lsp-session-file lsp--session (error) lsp--read-from-file lsp--error "Failed to parse the session %s, starting with clean one." error-message-string nil make-lsp-session] 5 (#$ . 365572)]) #@53 Get the session associated with the current buffer. (defalias 'lsp-session #[0 "\206\301 \211\207" [lsp--session lsp--load-default-session] 2 (#$ . 365903)]) #@33 (fn BUFFER-MAJOR-MODE CLIENT) (defalias 'lsp--client-disabled-p #[514 "\301\302\303#\"\207" [lsp-disabled-clients seq-some make-closure #[257 "\2119\203 \211\301=\207\211:\205(\211\242\243\300=\205&\211<\203#\301>\207\301=\266\204\207" [V0 V1] 7 "\n\n(fn ENTRY)"]] 7 (#$ . 366071)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315& \210\300\316\302\303\317DD\320\310\321\312\322\314\315& \207" [custom-declare-variable lsp-server-install-dir funcall function #[0 "\300\301\302\303\304\"!!\207" [expand-file-name locate-user-emacs-file f-join ".cache" "lsp"] 5] "Directory in which the servers will be installed." :risky t :type directory :package-version (lsp-mode . "6.3") :group lsp-mode lsp-verify-signature #[0 "\300\207" [t] 1] "Whether to check GPG signatures of downloaded files." boolean (lsp-mode . "7.1")] 12) (defvar lsp--dependencies (make-hash-table :test 'equal)) #@933 Used to specify a language server DEPENDENCY, the server executable or other required file path. Typically, the DEPENDENCY is found by locating it on the system path using `executable-find'. You can explicitly call lsp-dependency in your environment to specify the absolute path to the DEPENDENCY. For example, the typescript-language-server requires both the server and the typescript compiler. If you've installed them in a team shared read-only location, you can instruct lsp-mode to use them via (eval-after-load 'lsp-mode '(progn (require 'lsp-javascript) (lsp-dependency 'typescript-language-server `(:system ,tls-exe)) (lsp-dependency 'typescript `(:system ,ts-js)))) where tls-exe is the absolute path to the typescript-language-server executable and ts-js is the absolute path to the typescript compiler JavaScript file, tsserver.js (the *.js is required for Windows). (fn NAME &rest DEFINITIONS) (defalias 'lsp-dependency #[385 "\301\302#\210\207" [lsp--dependencies nil puthash] 7 (#$ . 366994)]) #@15 (fn CLIENT) (defalias 'lsp--server-binary-present\? #[257 "\301!>\204\302\303\304D\"\210\211\305H\306=?\205T\3071R\3101N\211\211\2057\301!>\2044\302\303\304D\"\210\211\311H\262\211\205A\312\313\"\262\211\205I\211 \26200\2070\210\314\207\210\314\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 15 lsp-pwsh (args-out-of-range) (error) 3 plist-get :test\? nil] 6 (#$ . 368037)]) #@125 Non-nil if Lsp-Installation-Buffer mode is enabled. Use the command `lsp-installation-buffer-mode' to change this variable. (defvar lsp-installation-buffer-mode nil (#$ . 368473)) (make-variable-buffer-local 'lsp-installation-buffer-mode) #@771 Mode used in *lsp-installation* buffers. It can be used to set-up keybindings, etc. Disabling this mode detaches the installation buffer from commands like `lsp-select-installation-buffer'. This is a minor mode. If called interactively, toggle the `Lsp-Installation-Buffer mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `lsp-installation-buffer-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'lsp-installation-buffer-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [lsp-installation-buffer-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks lsp-installation-buffer-mode-hook lsp-installation-buffer-mode-on-hook lsp-installation-buffer-mode-off-hook called-interactively-p any message "Lsp-Installation-Buffer mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 368719) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar lsp-installation-buffer-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\210\314\315\316\317\320\321%\210\314\322\323\324\320\321%\207" [lsp-installation-buffer-mode-map lsp-installation-buffer-mode-hook variable-documentation put "Hook run after entering or leaving `lsp-installation-buffer-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode lsp-installation-buffer-mode boundp custom-declare-face lsp-installation-finished-buffer-face ((t :foreground "orange")) "Face used for finished installation buffers.\nUsed in `lsp-select-installation-buffer'." :group lsp-mode lsp-installation-buffer-face ((t :foreground "green")) "Face used for installation buffers still in progress.\nUsed in `lsp-select-installation-buffer'."] 6) #@69 Check whether BUF is an `lsp-async-start-process' buffer. (fn BUF) (defalias 'lsp--installation-buffer\? #[257 "\300\301\"\207" [buffer-local-value lsp-installation-buffer-mode] 4 (#$ . 371206)]) #@159 Interactively choose an installation buffer. If SHOW-FINISHED is set, leftover (finished) installation buffers are still shown. (fn &optional SHOW-FINISHED) (defalias 'lsp-select-installation-buffer #[256 "\300\301 \302\300\211\2031\211A\262\242\262\262T\262\303!\203\204)\304!\203B\262\202\266\211\237\262\305\204@\306\307!\207:\203V\242\243\211\204R\310!\207!\207\211!\207" [nil buffer-list 0 lsp--installation-buffer\? get-buffer-process #[257 "\300\301\302\303\304\"\"!\207" [pop-to-buffer completing-read "Select installation buffer: " mapcar #[257 "\300\301!\302\303!\203\304\202\305#\207" [propertize buffer-name face get-buffer-process lsp-installation-buffer-face lsp-installation-finished-buffer-face] 6 "\n\n(fn IT)"]] 7 "\n\n(fn BUFS)"] user-error "No installation buffers" pop-to-buffer] 8 (#$ . 371411) "P"]) #@45 Delete finished *lsp-installation* buffers. (defalias 'lsp-cleanup-installation-buffers #[0 "\300 \211\205\211@\301!\203\302!\204\303!\210A\266\202\202\207" [buffer-list lsp--installation-buffer\? get-buffer-process kill-buffer] 4 (#$ . 372284) nil]) (defalias 'lsp--download-status #[0 "\300\301!\211\205\211\302\303\"\262\262\211\205\211\304\305\"\262\262\211\205)\211\306\307\310#\262\262\211\2056\211\304\311\"\262\262\211\205I\211\306\312\313\314\315\"\316\317%\262\207" [lsp--filter-clients lsp--client-download-in-progress\? -map #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--client-server-id (symbol-name) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] format "%s" propertize face success " Installing following servers: %s" local-map make-mode-line-mouse-map mouse-1 lsp-select-installation-buffer mouse-face highlight] 8]) #@36 (fn CLIENT &optional UPDATE\=\?) (defalias 'lsp--install-server-internal #[513 "\301!>\204\302\303\304D\"\210\305H\204,\306\307\301!>\204'\302\303\304D\"\210\310H\"\210\301!>\204;\302\303\304D\"\210\211\311\312I\266\313\314\315\"\210\316\317\"\320\321\301!>\204]\302\303\304D\"\210\310H\"\210\3221\205\301!>\204u\302\303\304D\"\210\305H\316\323\"\316\324\"$0\207\325\326!\"\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 30 user-error "There is no automatic installation for `%s', you have to install it manually following lsp-mode's documentation." 15 31 t add-to-list global-mode-string (t (:eval (lsp--download-status))) make-closure #[513 "\301\302\303\304\305\300$#\207" [V0 run-with-timer 0.0 nil make-closure #[0 "\305\300! >\204\306\307\310\300D\"\210\300\311H\305\300! >\204!\306\307\310\300D\"\210\300\312H\305\300! >\2043\306\307\310\300D\"\210\300\211\313\314I\266\305\300! >\204I\306\307\310\300D\"\210\300\211\312\314I\266\301\203^\315\316G#\210\202d\317\320\302#\210\321\322\323\301\"\"\210\324\325!?\205y\326\327\f\"\211\207" [V0 V1 V2 cl-struct-lsp--client-tags global-mode-string type-of signal wrong-type-argument lsp--client 15 32 31 nil lsp--info "Server %s downloaded, auto-starting in %s buffers." lsp--error "Server %s install process failed with the following error message: %s.\nCheck `*lsp-install*' and `*lsp-log*' buffer." seq-do make-closure #[257 "\303!\205/\304\305\"\211\203\304\306\"\211\307\310\300\"!)\202-rq\210\311\312\n\"\300\205,\313 )\262\207" [V0 lsp--buffer-workspaces global-mode-string lsp-buffer-live-p plist-get :with-current-buffer :workspaces make-closure #[0 "\302\303 \"\300\205 \304 \207" [V0 global-mode-string -remove-item #1=(t (:eval (lsp--download-status))) lsp] 3] -remove-item #1# lsp] 6 "\n\n(fn BUFFER)"] lsp--filter-clients lsp--client-download-in-progress\? -remove-item (t (:eval (lsp--download-status)))] 6]] 10 "\n\n(fn SUCCESS\\=\\? &optional ERROR-MESSAGE)"] lsp--info "Download %s started." (error) #[0 "\300\301!\207" [V0 t] 2] #[257 "\300\301\"\207" [V0 nil] 4 "\n\n(fn MSG)"] nil error-message-string] 9 (#$ . 373206)]) #@39 Load `lsp-client-packages' if needed. (defalias 'lsp--require-packages #[0 "\205 ?\205\303\304\n\"\210\305\211\207" [lsp-auto-configure lsp--client-packages-required lsp-client-packages seq-do #[257 "\300!?\205\f\301\302\303#\207" [featurep require nil t] 5 "\n\n(fn PACKAGE)"] t] 3 (#$ . 375411)]) #@143 Interactively install server. When prefix UPDATE? is t force installation even if the server is present. (fn UPDATE\=\? &optional SERVER-ID) (defalias 'lsp-install-server #[513 "\301 \210\302\303\"\206'\304\305\306\307\310\311\312 !\"\313\314#\315!\"\206#\316\317!\320\321\322%\"\207" [lsp-clients lsp--require-packages lsp--install-server-internal gethash lsp--completing-read "Select server to install: " -filter -andfn -orfn #[128 #1="\301\300\"?\207" [lsp--server-binary-present\? apply] 4 #2="\n\n(fn &rest ARGS)"] -const #[128 #1# [lsp--client-download-in-progress\? apply] 4 #2#] lsp--client-download-server-fn ht-values user-error "There are no servers with automatic installation" #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--client-server-id (symbol-name) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] nil t] 11 (#$ . 375726) "P"]) #@41 Ensure server SERVER-ID (fn SERVER-ID) (defalias 'lsp-ensure-server #[257 "\301 \210\302\"\211\203\303!?\205 \304\305\"\210\306\307\"\207\310\311\"\207" [lsp-clients lsp--require-packages gethash lsp--server-binary-present\? lsp--info "Server `%s' is not preset, installing..." lsp-install-server nil warn "Unable to find server registration with id %s"] 5 (#$ . 376635)]) #@107 Start async process COMMAND with CALLBACK and ERROR-CALLBACK. (fn CALLBACK ERROR-CALLBACK &rest COMMAND) (defalias 'lsp-async-start-process #[642 "\211@r\300\301\302\303#\304\305\306\"#q\210\307\310!\210\311\312\305\313#\314\304$)\207" [compilation-start mapconcat shell-quote-argument " " t make-closure #[128 "\301\302\303\300\"!\207" [V0 generate-new-buffer-name format "*lsp-install: %s*"] 5 "\n\n(fn &rest _)"] lsp-installation-buffer-mode 1 add-hook compilation-finish-functions #[514 "\211\302\230\203\3031\300 0\207\301\304!!\207\301\305!!\207" [V0 V1 "finished\n" (error) error-message-string s-trim-right] 6 "\n\n(fn BUF STATUS)"] nil] 10 (#$ . 377025)]) #@133 Resolve VALUE's value. If it is function - call it. If it is symbol - return it's value Otherwise returns value itself. (fn VALUE) (defalias 'lsp-resolve-value #[257 "\300!\203 \211 \207\2119\203\211J\207\207" [functionp] 3 (#$ . 377710)]) (defvar lsp-deps-providers (byte-code "\300\301\302\303\304F\305\301\306D\307\301\310\303\311F\257\207" [:npm :path lsp--npm-dependency-path :install lsp--npm-dependency-install :system lsp--system-path :download lsp-download-path lsp-download-install] 9)) #@138 If PATH is absolute and exists return it as is. Otherwise, return the absolute path to the executable defined by PATH or nil. (fn PATH) (defalias 'lsp--system-path #[257 "\300!\301!\203\302!\203\207\303!\207" [lsp-resolve-value f-absolute\? f-exists\? executable-find] 4 (#$ . 378220)]) #@75 Path to the DEPENDENCY each of the registered providers. (fn DEPENDENCY) (defalias 'lsp-package-path #[257 "\301C\302\303\304\"\305\"\"\210\211\242\207" [lsp--dependencies nil -first make-closure #[257 "\211\211A\262\242\300 \211\205\302\"\262\211\205\302\303\"\262\211\205&\304\"\262\240\207" [V0 lsp-deps-providers plist-get :path apply] 9 "\n\n(fn INPUT0)"] gethash] 7 (#$ . 378522)]) #@75 Asynchronously ensure a package. (fn DEPENDENCY CALLBACK ERROR-CALLBACK) (defalias 'lsp-package-ensure #[771 "\301\302\303#\304\"\"\206\211\305\306\"!\207" [lsp--dependencies -first make-closure #[257 "\211\211A\262\242\n\211\205\303\"\262\211\205\303\304\"\262\211\205)\305\300\301BB\"\207" [V0 V1 lsp-deps-providers plist-get :install apply] 10 "\n\n(fn INPUT0)"] gethash format "Unable to find a way to install %s"] 8 (#$ . 378936)]) #@83 Return npm dependency PATH for PACKAGE. (fn &key PACKAGE PATH &allow-other-keys) (defalias 'lsp--npm-dependency-path #[128 "\302\303\"A@\302\304\"A@\305\306\307 \310=\203\311\202\312%!\211\203*\313!\2040\314\315#\210\207" [lsp-server-install-dir system-type plist-member :package :path executable-find f-join "npm" windows-nt "" "bin" f-exists\? error "The package %s is not installed. Unable to find %s"] 10 (#$ . 379402)]) #@63 (fn CALLBACK ERROR-CALLBACK &key PACKAGE &allow-other-keys) (defalias 'lsp--npm-dependency-install #[642 "\301\302\"A@\303\304!\211\203)\305\306\304\307$\310\"\210\311\312\313\306\304\n#\314 &\207\315\316\"\210\317\207" [lsp-server-install-dir plist-member :package executable-find "npm" make-directory f-join "lib" parents lsp-async-start-process "-g" "--prefix" "install" lsp-log "Unable to install %s via `npm' because it is not present" nil] 15 (#$ . 379850)]) #@97 (fn CALLBACK ERROR-CALLBACK &key URL ASC-URL PGP-KEY STORE-PATH DECOMPRESS &allow-other-keys) (defalias 'lsp-download-install #[642 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\306!\306!\307\267\2026\211\310P\202A\211\311P\202A\204>\211\202A\312\313!\314\315\316    \n\n\n\n& !\207" [plist-member :url :asc-url :pgp-key :store-path :decompress lsp-resolve-value #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:gzip 42 :zip 48)) ".gz" ".zip" error ":decompress must be `:gzip', `:zip' or `nil'" make-thread make-closure #[0 "\3101\311\307!\203\312\307!\210\311\306!\203\312\306!\210\313\314\305\307#\210\315\316\307!\317\"\210\320\305\307\"\210\313\321\307\"\2101\203\355\302\203\355\303\203\355\3222!\203\351\307\323P\324 \325\211\311!\203T\312!\210\313\314\302#\210\320\302\"\210\313\321\"\210\326\303\"\210\327\330\"\331!3>\204~\332\333\334D\"\210\211\335H\262@\331!4>\204\224\332\333\336D\"\210\211\337H\262\262\313\340\"\210\341\307#\210\327\342\"@\262\331!5>\204\275\332\333\343D\"\210\211\337H\344=\203\335\331!5>\204\325\332\333\343D\"\210\211\345H\232\204\344\346\347\350!\"\210\266\202\355\351\352!\210\304\203\313\353\307\"\210\304\354=\203\355\307!\210\202\304\356=\203\357\307\316\306!\"\210\313\360\306\"\210\300 0\207\301!\207" [V0 V1 V2 V3 V4 V5 V6 V7 (error) f-exists\? f-delete lsp--info "Starting to download %s to %s..." mkdir f-parent t url-copy-file "Finished downloading %s..." executable-find ".asc" epg-make-context nil epg-import-keys-from-string epg-context-result-for import type-of signal wrong-type-argument epg-import-result 14 epg-import-status 1 "Verifying signature %s..." epg-verify-file verify epg-signature good 4 error "Failed to verify GPG signature: %s" epg-signature-to-string lsp--warn "GPG is not installed, skipping the signature check." "Decompressing %s..." :gzip lsp-gunzip :zip lsp-unzip "Decompressed %s..." lsp-verify-signature epg-gpg-program cl-struct-epg-import-result-tags cl-struct-epg-import-status-tags cl-struct-epg-signature-tags] 9]] 22 (#$ . 380335)]) #@348 Download URL and store it into STORE-PATH. SET-EXECUTABLE? when non-nil change the executable flags of STORE-PATH to make it executable. BINARY-PATH can be specified when the binary to start does not match the name of the archieve(e. g. when the archieve has multiple files) (fn &key STORE-PATH BINARY-PATH SET-EXECUTABLE\=\? &allow-other-keys) (defalias 'lsp-download-path #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\304!\206\304!\305!\203\"\207\2032\306!\2032\307\310\"\210\207\306!\2059\211\207" [plist-member :store-path :binary-path :set-executable\? lsp-resolve-value executable-find f-exists\? set-file-modes 448] 8 (#$ . 382494)]) #@34 Powershell script to unzip file. (defconst lsp-ext-pwsh-script "powershell -noprofile -noninteractive -nologo -ex bypass Expand-Archive -path '%s' -dest '%s'" (#$ . 383157)) #@29 Unzip script to unzip file. (defconst lsp-ext-unzip-script "bash -c 'mkdir -p %2$s && unzip -qq -o %1$s -d %2$s'" (#$ . 383337)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable lsp-unzip-script funcall function #[0 "\302\303!\203\207\302\304!\203 \207\305\207" [lsp-ext-pwsh-script lsp-ext-unzip-script executable-find "powershell" "unzip" nil] 2] "The script to unzip." :group lsp-mode :type string :package-version (lsp-mode . "7.1")] 10) #@45 Unzip ZIP-FILE to DEST. (fn ZIP-FILE DEST) (defalias 'lsp-unzip #[514 "\204\301\302!\210\303\304#!\207" [lsp-unzip-script error "Unable to find `unzip' or `powershell' on the path, please customize `lsp-unzip-script'" shell-command format] 7 (#$ . 383836)]) #@49 Script to decompress a gzippped file with gzip. (defconst lsp-ext-gunzip-script "gzip -d %1$s" (#$ . 384107)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable lsp-gunzip-script funcall function #[0 "\301\302!\203\207\303\207" [lsp-ext-gunzip-script executable-find "gzip" nil] 2] "The script to decompress a gzipped file.\nShould be a format string with one argument for the file to be decompressed\nin place." :group lsp-mode :type string :package-version (lsp-mode . "7.1")] 10) #@44 Decompress GZ-FILE in place. (fn GZ-FILE) (defalias 'lsp-gunzip #[257 "\204 \301\302\"\210\303\304\"!\207" [lsp-gunzip-script error "Unable to find `gzip' on the path, please either customize `lsp-gunzip-script' or manually decompress %s" shell-command format] 5 (#$ . 384643)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable lsp-vscode-ext-url funcall function #[0 "\300\207" [#1="https://marketplace.visualstudio.com/_apis/public/gallery/publishers/%s/vsextensions/%s/%s/vspackage"] 1 #1#] "Vscode extension template url." :group lsp-mode :type string :package-version (lsp-mode . "7.1")] 10) #@211 Return the URL to vscode extension. PUBLISHER is the extension publisher. NAME is the name of the extension. VERSION is the version of the extension, defaults to `latest' (fn PUBLISHER NAME &optional VERSION) (defalias 'lsp-vscode-extension-url #[770 "\301\206 \302$\207" [lsp-vscode-ext-url format "latest"] 8 (#$ . 385299)]) #@58 List of questions yet to be asked by `lsp-ask-question'. (defvar lsp--question-queue nil (#$ . 385638)) #@394 Prompt the user to answer the QUESTION with one of the OPTIONS from the minibuffer. Once the user selects an option, the CALLBACK function will be called, passing the selected option to it. If the user is currently being shown a question, the question will be stored in `lsp--question-queue', and will be asked once the user has answered the current question. (fn QUESTION OPTIONS CALLBACK) (defalias 'lsp-ask-question #[771 "\301\300\302B\303B\304BE\305#\210G\306=\205\307 \207" [lsp--question-queue add-to-list "question" "options" "callback" t 1 lsp--process-question-queue] 9 (#$ . 385749)]) #@122 Take the first question from `lsp--question-queue', process it, then process the next question until the queue is empty. (defalias 'lsp--process-question-queue #[0 "@\301\302\"A\301\303\"A\301\304\"A\305\306\307$\210A!\210\205&\310 \207" [lsp--question-queue assoc "question" "options" "callback" completing-read nil t lsp--process-question-queue] 9 (#$ . 386360)]) #@15 (fn CLIENT) (defalias 'lsp--matching-clients\? #[257 "\303\304\305 !!\303\306!>\204\307\310\311D\"\210\312H!=\205\242\306!>\204-\307\310\311D\"\210\211\313H\211\203<\211\305 \"\202Q\314\306!>\204L\307\310\311D\"\210\315H \"\262\205\242\n\203\214\306!>\204i\307\310\311D\"\210\211\316H\n\235\204\214\317\320\321\306!>\204\204\307\310\311D\"\210\316H\"\210\205\242\322 \306!>\204\235\307\310\311D\"\210\316H\"?\207" [cl-struct-lsp--client-tags major-mode lsp-enabled-clients ---truthy\? file-remote-p buffer-file-name type-of signal wrong-type-argument lsp--client 23 13 -contains\? 12 15 nil lsp--info "Client %s is not in lsp-enabled-clients" lsp--client-disabled-p] 8 (#$ . 386745)]) #@13 (fn PRED) (defalias 'lsp--filter-clients #[257 "\301\302C\303\304\305\"\"\210\211\242\237\266\202\"\207" [lsp-clients -filter nil maphash make-closure #[514 "\300\300\242B\240\207" [V0] 5 "\n\n(fn --CL-VAR-- V)"]] 9 (#$ . 387477)]) #@206 Find clients which can handle BUFFER-MAJOR-MODE. SESSION is the currently active session. The function will also pick only remote enabled clients in case the FILE-NAME is on remote machine and vice versa. (defalias 'lsp--find-clients #[0 "\300\301!\211\205D\302\303\304 \305\306\307\310\"\"#\210\311\312\"\211A\262\242@\211\205)\313\314\"\211\2033\211B\2024\262\302\315\305\306\307\316\"\"\"\210\266\203\207" [lsp--filter-clients #[128 "\301\300\302\303\211\211\2034\211A\262\242\262\262\211\262\2034\304\"\211\262\2034\262\262T\262\202\266\207" [(lsp--matching-clients\? lsp--server-binary-present\?) t 0 nil apply] 10 "\n\n(fn &rest ARGS)"] lsp-log "Found the following clients for %s: %s" buffer-file-name s-join ", " -map #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\303!>\204$\304\305\306D\"\210\310H#\207" [cl-struct-lsp--client-tags format "(server-id %s, priority %s)" type-of signal wrong-type-argument lsp--client 15 14] 8 "\n\n(fn CLIENT)"] -separate lsp--client-add-on\? -max-by #[514 "\301!>\204\302\303\304D\"\210\305H\301!>\204!\302\303\304D\"\210\305HV\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 14] 7 "\n\n(fn IT OTHER)"] "The following clients were selected based on priority: %s" #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\303!>\204$\304\305\306D\"\210\310H#\207" [cl-struct-lsp--client-tags format "(server-id %s, priority %s)" type-of signal wrong-type-argument lsp--client 15 14] 8 "\n\n(fn CLIENT)"]] 12 (#$ . 387723)]) #@43 Registers LSP client CLIENT. (fn CLIENT) (defalias 'lsp-register-client #[257 "\302!>\204\303\304\305D\"\210\211\306H9\2040\307\310\311\302!>\204)\303\304\305D\"\210\306HC\311$\210\312\302!>\204@\303\304\305D\"\210\313H!\204~\302!>\204V\303\304\305D\"\210\211\314H<\203w\315\316\317!\302!>\204p\303\304\305D\"\210\314H\"\204~\307\320\321\311\211$\210\302!>\204\215\303\304\305D\"\210\211\306H\322 #\210\323\324\325\326\"!\327\330\331\332\333\334\335\325\336 \"\337BBBBBBBB\"\207" [cl-struct-lsp--client-tags lsp-clients type-of signal wrong-type-argument lsp--client 15 cl--assertion-failed (symbolp (lsp--client-server-id client)) nil functionp 13 12 seq-every-p apply-partially symbolp (or (functionp (lsp--client-activation-fn client)) (and (listp (lsp--client-major-modes client)) (seq-every-p (apply-partially #'symbolp) (lsp--client-major-modes client)))) "Invalid activation-fn and/or major-modes." puthash setplist intern format "lsp-%s-after-open-hook" standard-value (nil) custom-type hook custom-package-version (lsp-mode . "7.0.1") variable-documentation "Hooks to run after `%s' server is run." (custom-requests nil)] 14 (#$ . 389296)]) #@194 Create initialization-options from SESSION and CLIENT. Add workspace folders depending on server being multiroot and session workspace folder configuration for the server. (fn SESSION CLIENT) (defalias 'lsp--create-initialization-options #[514 "\301!>\204\302\303\304D\"\210\211\305H\306!\203\211 \207\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 17 functionp] 6 (#$ . 390491)]) #@99 For internal use, any external users please use `lsp-register-custom-settings' function instead (defvar lsp-client-settings nil (#$ . 390920)) #@12 (fn A B) (defalias 'lsp--compare-setting-path #[514 "@@\232\207" [] 4 (#$ . 391071)]) #@485 Register PROPS. PROPS is list of triple (path value boolean?) where PATH is the path to the property; VALUE can be a literal value, symbol to be evaluated, or either a function or lambda function to be called without arguments; BOOLEAN? is an optional flag that should be non-nil for boolean settings, when it is nil the property will be ignored if the VALUE is nil. Example: `(lsp-register-custom-settings '(("foo.bar.buzz.enabled" t t)))' (note the double parentheses) (fn PROPS) (defalias 'lsp-register-custom-settings #[257 "\302\303\304 \"!\211)\207" [-compare-fn lsp-client-settings lsp--compare-setting-path -uniq append] 5 (#$ . 391168)]) #@57 Get the text for REGION in current buffer. (fn REGION) (defalias 'lsp-region-text #[257 "\300!\211\211A\262\242\301\"\207" [lsp--range-to-region buffer-substring-no-properties] 8 (#$ . 391826)]) #@111 Set nested hash table value. TBL - a hash table, PATHS is the path to the nested VALUE. (fn TBL PATHS VALUE) (defalias 'lsp-ht-set #[771 ":\205=\242\243\211\204\300\301 #\210\207\302\"\2063\303\304\305\"\211\262\301\n#\210\211\262\306#\262\266\204\207" [nil puthash gethash make-hash-table :test equal lsp-ht-set] 12 (#$ . 392035)]) #@41 Get settings for SECTION. (fn SECTION) (defalias 'lsp-configuration-section #[257 "\301\302\303\"\304\305\306#\"\210\207" [lsp-client-settings make-hash-table :test equal mapc make-closure #[257 "\211\211A\262\242\211A\262\242@\302\303\300!\304P\"\205?\305\211!!\203+\211\204+\306\202,\211\2044\211\205=\307\301\310\311\"#\266\202\207" [V0 V1 s-matches\? regexp-quote "\\..*" lsp-resolve-value :json-false lsp-ht-set s-split "\\."] 12 "\n\n(fn INPUT0)"]] 7 (#$ . 392402)]) #@125 Initiates connection created from CLIENT for PROJECT-ROOT. SESSION is the active session. (fn SESSION CLIENT PROJECT-ROOT) (defalias 'lsp--start-connection #[771 "\302!>\204\303\304\305D\"\210\306H\203}\302!>\204$\303\304\305D\"\210\307H\302! >\2047\303\304\310D\"\210\311H\312\313\302!>\204N\303\304\305 D\"\210\307H\302 ! >\204c\303\304\310 D\"\210\311H\"\314\"\203t\211\202wB\262#\266\315\316C\317#\210\320\216\321\322\"$)\207" [cl-struct-lsp--client-tags cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp--client 16 15 lsp-session 3 puthash gethash memql run-hook-with-args lsp-workspace-folders-changed-functions nil #[0 "\300 \207" [lsp--spinner-stop] 1] lsp--start-workspace lsp--create-initialization-options] 13 (#$ . 392904)]) #@33 Keymap for lsp log buffer mode. (defvar lsp-log-io-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\207" [make-sparse-keymap define-key [134217838] lsp-log-io-next [134217840] lsp-log-io-prev "k" lsp--erase-log-buffer "K" lsp--erase-session-log-buffers] 5) (#$ . 393712)) (defvar lsp-log-io-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [lsp-log-io-mode-hook variable-documentation put "Hook run after entering LspLogIo mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp lsp-log-io-mode-map definition-name lsp-log-io-mode] 4) (defvar lsp-log-io-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [lsp-log-io-mode-abbrev-table lsp-log-io-mode-map variable-documentation put purecopy "Keymap for `lsp-log-io-mode'." boundp lsp-log-io-mode-syntax-table definition-name lsp-log-io-mode (lambda (def-tmp-var) (defvar lsp-log-io-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `lsp-log-io-mode'." (lambda (def-tmp-var) (defvar lsp-log-io-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `lsp-log-io-mode'." derived-mode-parent special-mode] 5) #@236 Special mode for viewing IO logs. In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `lsp-log-io-mode-hook', as the final or penultimate step during initialization. \{lsp-log-io-mode-map} (defalias 'lsp-log-io-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!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 )\331\332!\207" [delay-mode-hooks major-mode mode-name lsp-log-io-mode-map lsp-log-io-mode-syntax-table lsp-log-io-mode-abbrev-table make-local-variable t special-mode lsp-log-io-mode "LspLogIo" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks lsp-log-io-mode-hook local-abbrev-table] 5 (#$ . 395259) nil]) #@54 Display the log buffer of WORKSPACE. (fn WORKSPACE) (defalias 'lsp-workspace-show-log #[257 "\300\301!!\207" [pop-to-buffer lsp--get-log-buffer-create] 4 (#$ . 396247) (byte-code "\203\301 G\302=\203\301 @\202 \303\304\301 \305\306\307%\202 \310\311!C\207" [lsp-print-io lsp-workspaces 1 lsp--completing-read "Workspace: " lsp--workspace-print nil t user-error "IO logging is disabled"] 6)]) (defalias 'lsp-switch-to-io-log-buffer 'lsp-workspace-show-log) #@87 Return the lsp log buffer of WORKSPACE, creating a new one if needed. (fn WORKSPACE) (defalias 'lsp--get-log-buffer-create #[257 "\302\303!>\204\304\305\306D\"\210\307H\303! >\204\"\304\305\310D\"\210\211\311H\262!\312\313\314\303!>\204;\304\305\306D\"\210\315H!\"\316\312\317#!\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags symbol-name type-of signal wrong-type-argument lsp--workspace 5 lsp--client 15 format "%s" process-id 8 get-buffer-create "*lsp-log: %s:%s*"] 9 (#$ . 396718)]) #@125 Delete contents of current lsp log buffer. When ALL is t, erase all log buffers of the running session. (fn &optional ALL) (defalias 'lsp--erase-log-buffer #[256 "\301\302 !p\211\205+\211@\303!\204\211=\203#r\211q\210\304\305 \210*\210A\266\202\202\207" [inhibit-read-only lsp--session-workspaces lsp-session lsp--get-log-buffer-create t erase-buffer] 8 (#$ . 397246) nil]) #@43 Erase log buffers of the running session. (defalias 'lsp--erase-session-log-buffers #[0 "\300\301!\207" [lsp--erase-log-buffer t] 2 (#$ . 397639) nil]) #@35 Move to next log entry. (fn ARG) (defalias 'lsp-log-io-next #[257 "\301\206\302\"\207" [lsp--log-io-ewoc ewoc-goto-next 1] 4 (#$ . 397797) "P"]) #@39 Move to previous log entry. (fn ARG) (defalias 'lsp-log-io-prev #[257 "\301\206\302\"\207" [lsp--log-io-ewoc ewoc-goto-prev 1] 4 (#$ . 397953) "P"]) #@50 Visual representation WORKSPACE. (fn WORKSPACE) (defalias 'lsp--workspace-print #[257 "\302!>\204\303\304\305D\"\210\211\306H\302!>\204!\303\304\305D\"\210\307H\310\302!>\2045\303\304\305D\"\210\311H\302! >\204G\303\304\312D\"\210\211\313H\262!\314!\315=\203\\\316\317#\207\316\320$\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--workspace 8 13 symbol-name 5 lsp--client 15 process-id initialized format "%s:%s" "%s:%s/%s"] 10 (#$ . 398113)]) #@50 Build `tree-widget' from a hash-table M. (fn M) (defalias 'lsp--map-tree-widget #[257 "\300!\205\301C\302\303\304\"\"\210\211\242\262\207" [hash-table-p nil maphash make-closure #[514 "\300\301\302\303!\203\304\305\"\202\304\306\307\304\310 \"\311\312##\313\314\315!BBBBB\300\242B\240\207" [V0 tree-widget :tag hash-table-p format "%s:" "%s: %s" propertize "%s" face font-lock-string-face :open t lsp--map-tree-widget] 12 "\n\n(fn K V)"]] 6 (#$ . 398648)]) #@18 (fn BUFFER-ID) (defalias 'lsp-buffer-name #[257 "\300\301\"\211\203\f\211!\207\302!\207" [plist-get :buffer-name buffer-name] 4 (#$ . 399130)]) #@56 Tree node representation of WORKSPACE. (fn WORKSPACE) (defalias 'lsp--render-workspace #[257 "\301\302\303!\304\305\301\302\306\307\310\311#\304\305\312\313\314 !>\204#\315\316\317D\"\210\f\320H\"BBBBB\301\302\306\321\310\311#\322\314 !>\204F\315\316\317 D\"\210\n\323H!BBB\257\207" [cl-struct-lsp--workspace-tags tree-widget :tag lsp--workspace-print :open t propertize "Buffers" face font-lock-function-name-face mapcar #[257 "\302\303\304!\2055\305!\306\307\"\211\203\306\310\"\211\311!)\202%rq\210 )\262\2032\312\313\314#\2023\211\262E\207" [lsp--buffer-workspaces buffer-read-only tree-widget :tag lsp-buffer-live-p lsp-buffer-name plist-get :with-current-buffer :workspaces #[0 "\207" [buffer-read-only] 1] propertize face font-lock-constant-face] 8 "\n\n(fn IT)"] type-of signal wrong-type-argument lsp--workspace 9 "Capabilities" lsp--map-tree-widget 2] 17 (#$ . 399286)]) (defvar lsp-browser-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [lsp-browser-mode-hook variable-documentation put "Hook run after entering LspBrowser mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp lsp-browser-mode-map definition-name lsp-browser-mode] 4) (defvar lsp-browser-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [lsp-browser-mode-abbrev-table lsp-browser-mode-map variable-documentation put purecopy "Keymap for `lsp-browser-mode'." boundp lsp-browser-mode-syntax-table definition-name lsp-browser-mode (lambda (def-tmp-var) (defvar lsp-browser-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `lsp-browser-mode'." (lambda (def-tmp-var) (defvar lsp-browser-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `lsp-browser-mode'." derived-mode-parent special-mode] 5) #@245 Define mode for displaying lsp sessions. In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `lsp-browser-mode-hook', as the final or penultimate step during initialization. \{lsp-browser-mode-map} (defalias 'lsp-browser-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!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 \306\331!\210\332)\333\334!\207" [delay-mode-hooks major-mode mode-name lsp-browser-mode-map lsp-browser-mode-syntax-table lsp-browser-mode-abbrev-table make-local-variable t special-mode lsp-browser-mode "LspBrowser" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table display-buffer-base-action (nil (inhibit-same-window . t)) run-mode-hooks lsp-browser-mode-hook local-abbrev-table] 5 (#$ . 401438) nil]) #@34 Describes current `lsp-session'. (defalias 'lsp-describe-session #[0 "\302 \303\304!r\211q\210\305 \210\306\307 \210\310! >\204 \311\312\302D\"\210\313H\314\315\211\203i\211A\262\242\262\262T\262\316\317\320\321\322\323#\324\306\325\326\327\n\310! >\204Y\311\312\302D\"\210\330H\"\"BBBBB!\210\202&\266*\331!\207" [inhibit-read-only cl-struct-lsp-session-tags lsp-session get-buffer-create "*lsp session*" lsp-browser-mode t erase-buffer type-of signal wrong-type-argument 1 0 nil widget-create tree-widget :tag propertize face font-lock-keyword-face :open -map lsp--render-workspace gethash 4 pop-to-buffer] 20 (#$ . 402521) nil]) #@64 Get all workspaces that are part of the SESSION. (fn SESSION) (defalias 'lsp--session-workspaces #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\310C\311\312\313\"\"\210\211\242\237\266\202!!\207" [cl-struct-lsp-session-tags -uniq -flatten type-of signal wrong-type-argument lsp-session 4 nil maphash make-closure #[514 "\300\300\242B\240\207" [V0] 5 "\n\n(fn --CL-VAR-- V)"]] 9 (#$ . 403184)]) #@138 Look for a multiroot connection in SESSION created from CLIENT for PROJECT-ROOT and BUFFER-MAJOR-MODE. (fn SESSION CLIENT PROJECT-ROOT) (defalias 'lsp--find-multiroot-workspace #[771 "\304!>\204\305\306\307D\"\210\310H\2053\311\312!\313\311\211\211\203\206\211A\262\242\262\262\211\262\203\206\304! >\204B\305\306\314D\"\210\315H\304!>\204T\305\306\307D\"\210\211\316H\262\304 !>\204j\305\306\307 D\"\210\316H=\203y\311\262\203\206\262\262T\262\202\266\211\262\211\2051\211\317\320\321\322\323\324\325\326\327\330 !\331\332 !$!\333\334$\"\"\210)\211\304! >\204\277\305\306\335D\"\210\336H\337\340\"\341\"\203\324\211\202\327B\262#\266\304!>\204\356\305\306\307D\"\210\316H\304! >\204\305\306\335D\"\210\342H\337\340\"\341\"\203\211\202B\262#\266\343!\210\344\345\346!#\210\347!\210\211\262\207" [cl-struct-lsp--client-tags cl-struct-lsp--workspace-tags lsp--cur-workspace cl-struct-lsp-session-tags type-of signal wrong-type-argument lsp--client 16 nil lsp--session-workspaces 0 lsp--workspace 5 15 lsp-notify "workspace/didChangeWorkspaceFolders" lsp-make-did-change-workspace-folders-params :event lsp-make-workspace-folders-change-event :added vector lsp-make-workspace-folder :uri lsp--path-to-uri :name f-filename :removed [] lsp-session 4 puthash gethash memql 3 lsp--persist-session lsp--info "Opened folder %s in workspace %s" lsp--workspace-print lsp--open-in-workspace] 17 (#$ . 403598)]) #@176 Ensure that SESSION contain server CLIENTS created for PROJECT-ROOT. IGNORE-MULTI-FOLDER to ignore multi folder server. (fn SESSION CLIENTS PROJECT-ROOT IGNORE-MULTI-FOLDER) (defalias 'lsp--ensure-lsp-servers #[1028 "\300\301\302$\"\207" [-map make-closure #[257 "\303\300\301#\206\302\204\304\300\301#\206\305\300\301#\207" [V0 V1 V2 lsp--find-workspace lsp--find-multiroot-workspace lsp--start-connection] 5 "\n\n(fn CLIENT)"]] 10 (#$ . 405110)]) #@61 Stop the spinner in case all of the workspaces are started. (defalias 'lsp--spinner-stop #[0 "\302\303\304\211\211\203C\211A\262\242\262\262\211\262\203C\305! >\204+\306\307\310D\"\210\311H\312=\211\262\203C\262\262T\262\202\266\211\262\205M\313 \207" [lsp--buffer-workspaces cl-struct-lsp--workspace-tags t 0 nil type-of signal wrong-type-argument lsp--workspace 13 initialized spinner-stop] 10 (#$ . 405580)]) #@45 Open in existing WORKSPACE. (fn WORKSPACE) (defalias 'lsp--open-in-workspace #[257 "\303!>\204\304\305\306D\"\210\211\307H\310=\203O\211\303!>\204(\304\305\306D\"\210\211\311H\303!\n>\204:\304\305\312D\"\210\211\313H\262\211\203G\211!\210\210\314 \210)\315 \207\316 \210\317 \303!>\204c\304\305\306D\"\210\211\320\320H\321\"\203t\211\202wB\262I\207" [cl-struct-lsp--workspace-tags lsp--cur-workspace cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--workspace 13 initialized 5 lsp--client 21 lsp--text-document-did-open lsp--spinner-stop lsp--spinner-start lsp-current-buffer 9 memql] 9 (#$ . 406026)]) #@107 Find server connection created with CLIENT in SESSION for PROJECT-ROOT. (fn SESSION CLIENT PROJECT-ROOT) (defalias 'lsp--find-workspace #[771 "\303\304\305!>\204\306\307\310D\"\210\311H\"\312\303\211\211\203\206\211A\262\242\262\262\211\262\203\206\313\305! >\204B\306\307\314D\"\210\315H\305!\n>\204T\306\307\316D\"\210\211\317H\262\305\n!\n>\204j\306\307\316\fD\"\210 \317H\"\203y\303\262\203\206\262\262T\262\202\266\211\262\211\205\224\320!\210\211\207" [cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags nil gethash type-of signal wrong-type-argument lsp-session 4 0 eql lsp--workspace 5 lsp--client 15 lsp--open-in-workspace] 15 (#$ . 406684)]) #@114 Find project interactively. Returns nil if the project should not be added to the current SESSION. (fn SESSION) (defalias 'lsp--find-root-interactively #[257 "\3021\264\303 \206\n\304\305\306\307\310 \311\312#\307\313\311\314#\307\311\312#\307\315\311\314#\307\316\311\317#\307 \311\312#\307\320\311\317#\307\321\311\317#& !\211\322\267\266\202\261\266\202\202\262\266\202\202\262\323\324\206V\325\326$\266\202\202\262\327! >\204m\330\331\332D\"\210\211\333\333HBI\266\334!\266\325\202\262\323\335\206\210\325\326$\327! >\204\233\330\331\332D\"\210\211\333\333HBI\266\334!\266\325\202\262\266\3250\207\210\325\207" [default-directory cl-struct-lsp-session-tags 'quit lsp--suggest-project-root read-key format "%s is not part of any project. Select action:\n\n%s==>Import project root %s.\n%s==>Import project by selecting root directory interactively.\n%s==>Do not ask again for the current project by adding %s to lsp-session-folders-blacklist.\n%s==>Do not ask again for the current project by selecting ignore path interactively.\n%s==>Do nothing: ask again when opening other files from the current project." propertize buffer-name face bold "i" success "I" "d" warning "D" "n" #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (105 67 13 73 73 79 100 94 68 129)) read-directory-name "Select workspace folder to add: " nil t type-of signal wrong-type-argument lsp-session 2 lsp--persist-session "Select folder to blacklist: "] 16 (#$ . 407424)]) #@73 Predicate on whether or not two files are on the same host. (fn F1 F2) (defalias 'lsp--files-same-host #[514 "\300!\206 \300!?\206(\300!\205(\300!\205(\301\302!\210\303\304!!\303\304!!\232\207" [file-remote-p require tramp tramp-file-name-host tramp-dissect-file-name] 6 (#$ . 408957)]) #@86 Look in the current SESSION for folder containing FILE-NAME. (fn SESSION FILE-NAME) (defalias 'lsp-find-session-folder #[514 "\301!\302\303\304\305!>\204\306\307\310D\"\210\311H\312\304\211\203V\211A\262\242\262\262T\262\313 \"\203\314 \"\204N\315!\203\316 \"\203B\262\202\266\211\237\262\"\207" [cl-struct-lsp-session-tags lsp-f-canonical -max-by #[514 "GGV\207" [] 4 "\n\n(fn IT OTHER)"] nil type-of signal wrong-type-argument lsp-session 1 0 lsp--files-same-host lsp-f-same\? f-dir\? lsp-f-ancestor-of\?] 13 (#$ . 409261)]) #@81 Find workspace for SERVER-ID for FILE-NAME. (fn SERVER-ID &optional FILE-NAME) (defalias 'lsp-find-workspace #[513 "\303 \211\205\266\304!>\204\305\306\303D\"\210\211\307H\211\205\264\203*\310\311\"\"\202-\312!\211\205\262\313\314\313\211\211\203\255\211A\262\242\262\262\211\262\203\255\304\211! >\204]\305\306\315D\"\210\316H!\n>\204\305\306\317\304! >\204y\305\306\315D\"\210\316HD\"\210\304! >\204\216\305\306\315D\"\210\316H\320H =\203\240\313\262\203\255\262\262T\262\2027\266\211\262\262\262\207" [cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags lsp-session type-of signal wrong-type-argument 4 gethash lsp-find-session-folder lsp--session-workspaces nil 0 lsp--workspace 5 lsp--client 15] 18 (#$ . 409836)]) #@74 Calculate project root for FILE-NAME in SESSION. (fn SESSION FILE-NAME) (defalias 'lsp--calculate-root #[514 "\302\303!>\204\304\305\306D\"\210\307H\310\302\211\211\203\\\211A\262\242\262\262\211\262\203\\\311\"\203O\312\"\203O\313\314\315 #\210\203O\302\262\203\\\262\262T\262\202\266\211\262?\205} \203n\316 \206}\317\"\206} ?\205}\320!\207" [cl-struct-lsp-session-tags lsp-auto-guess-root nil type-of signal wrong-type-argument lsp-session 2 0 lsp--files-same-host lsp-f-ancestor-of\? t lsp--info "File %s is in blacklisted directory %s" lsp--suggest-project-root lsp-find-session-folder lsp--find-root-interactively] 13 (#$ . 410652)]) #@155 Try opening current file as library file in any of the active workspace. The library folders are defined by each client for each of the active workspace. (defalias 'lsp--try-open-in-library-workspace #[0 "\302\303\304\305\306 !\"\307\302\211\211\203\202\211A\262\242\262\262\211\262\203\202\310\311!>\2042\312\313\314D\"\210\315H!\203u\311!>\204H\312\313\314D\"\210\315H\311! >\204Z\312\313\316D\"\210\211\317H\262\211\205i\320\321!\"\262\203u\302\262\203\202\262\262T\262\202\f\266\211\262\211\205\233\322!\210\323\324!\210\325\326\327 \"\210\211C\207" [cl-struct-lsp--workspace-tags cl-struct-lsp--client-tags nil -sort #[514 "\301\"\207" [lsp--last-active-workspaces -contains\?] 5 "\n\n(fn A B)"] lsp--session-workspaces lsp-session 0 lsp--matching-clients\? type-of signal wrong-type-argument lsp--workspace 5 lsp--client 20 -first #[257 "\300\301 \"\207" [lsp-f-ancestor-of\? buffer-file-name] 4 "\n\n(fn LIBRARY-FOLDER)"] lsp--open-in-workspace view-mode t lsp--info "Opening read-only library file %s." buffer-file-name] 11 (#$ . 411348)]) #@54 Persist SESSION to `lsp-session-file'. (fn SESSION) (defalias 'lsp--persist-session #[257 "\302\303\304\305! >\204\306\307\310D\"\210\311H\312\305! >\204)\306\307\310 D\"\210\313H\314\305 ! >\204?\306\307\310 D\"\210\315H&\"\207" [lsp-session-file cl-struct-lsp-session-tags lsp--persist make-lsp-session :folders type-of signal wrong-type-argument lsp-session 1 :folders-blacklist 2 :server-id->folders 3] 13 (#$ . 412449)]) #@337 Try create opening file as a project file. When IGNORE-MULTI-FOLDER is t the lsp mode will start new language server even if there is language server which can handle current language. When IGNORE-MULTI-FOLDER is nil current file will be opened in multi folder language server if there is such. (fn ASK-FOR-CLIENT IGNORE-MULTI-FOLDER) (defalias 'lsp--try-project-root-workspaces #[514 "\303 \211\203\304\305\306!\307\310\311%C\202\312 \211\203\231\211\205$\313\314 \"\262\211\205-\315!\262\211\203\221\316\317! >\204D\320\321\303D\"\210\322H\"\204\211\317! >\204[\320\321\303D\"\210\211\322\317! >\204o\320\321\303D\"\210\322H\323\"\203}\211\202\200B\262I\266\324!\210\325$\207\326\327\330 \"\210\310\207\326\331\n\"\210\310\207" [lsp-clients cl-struct-lsp-session-tags major-mode lsp-session lsp--completing-read "Select server to start: " ht-values #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--client-server-id (symbol-name) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] nil t lsp--find-clients lsp--calculate-root buffer-file-name lsp-f-canonical -contains\? type-of signal wrong-type-argument 1 memql lsp--persist-session lsp--ensure-lsp-servers lsp--warn "%s not in project or it is blacklisted." buffer-name "No LSP server for %s(check *lsp-log*)."] 13 (#$ . 412902)]) #@27 Shutdown language server. (defalias 'lsp-shutdown-workspace #[0 "\300\301 \211\204\302\303!\266\202\202=\211:\2038\211\242\243\211\2040\304\305\306\307!\"!\205)\211\262\266\204\202=!\266\204\202=!\266\202\211\205D\310!\207" [#[257 "\300\301\302\303\304%\207" [lsp--completing-read "Select server: " lsp--workspace-print nil t] 7 "\n\n(fn WORKSPACES)"] lsp-workspaces user-error "There are no active servers in the current buffer" y-or-n-p format "Are you sure you want to stop the server %s?" lsp--workspace-print lsp-workspace-shutdown] 10 (#$ . 414282) nil]) (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\207" [make-obsolete lsp-shutdown-workspace lsp-workspace-shutdown "lsp-mode 6.1" custom-declare-variable lsp-auto-select-workspace funcall function #[0 "\300\207" [t] 1] "Shutdown or restart a single workspace.\nIf set and the current buffer has only a single workspace\nassociated with it, `lsp-shutdown-workspace' and\n`lsp-restart-workspace' will act on it without asking." :type boolean :group lsp-mode] 8) #@63 Ask the user to select a workspace. Errors if there are none. (defalias 'lsp--read-workspace #[0 "\301\302 \211\204 \303\304!\207\211:\203&\211\242\243\211\203!\207\203\"\207!\207!\207" [lsp-auto-select-workspace #[257 "\300\301\302\303\304%\207" [lsp--completing-read "Select workspace: " lsp--workspace-print nil t] 7 "\n\n(fn WORKSPACES)"] lsp-workspaces error "No workspaces associated with the current buffer"] 6 (#$ . 415357)]) #@89 Shut the workspace WORKSPACE and the language server associated with it (fn WORKSPACE) (defalias 'lsp-workspace-shutdown #[257 "\301\302\303!\"\210\211\304 )\207" [lsp--cur-workspace lsp--warn "Stopping %s" lsp--workspace-print lsp--shutdown-workspace] 5 (#$ . 415812) (byte-code "\300 C\207" [lsp--read-workspace] 1)]) #@49 Disconnect the buffer from the language server. (defalias 'lsp-disconnect #[0 "\301\302!\210\303\304!\210\305\304!\210\306\307\310!\207" [lsp--buffer-workspaces lsp--text-document-did-close t lsp-managed-mode -1 lsp-mode nil lsp--info "Disconnected"] 2 (#$ . 416141) nil]) (defalias 'lsp-restart-workspace #[0 "\300\301 \211\204\302\303!\266\202\2022\211:\203-\211\242\243\211\204%\211\262\266\204\2022!\266\204\2022!\266\202\211\2059\304!\207" [#[257 "\300\301\302\303\304%\207" [lsp--completing-read "Select server: " lsp--workspace-print nil t] 7 "\n\n(fn WORKSPACES)"] lsp-workspaces user-error "There are no active servers in the current buffer" lsp-workspace-restart] 6 nil nil]) (make-obsolete 'lsp-restart-workspace 'lsp-workspace-restart "lsp-mode 6.1") #@92 Restart the workspace WORKSPACE and the language server associated with it (fn WORKSPACE) (defalias 'lsp-workspace-restart #[257 "\301\302\303!\"\210\211\304\305!)\207" [lsp--cur-workspace lsp--warn "Restarting %s" lsp--workspace-print lsp--shutdown-workspace t] 5 (#$ . 416928) (byte-code "\300 C\207" [lsp--read-workspace] 1)]) #@374 Entry point for the server startup. When ARG is t the lsp mode will start new language server even if there is language server which can handle current language. When ARG is nil current file will be opened in multi folder language server if there is such. When `lsp' is called with prefix argument ask the user to select which language server to start. (fn &optional ARG) (defalias 'lsp #[256 "\305 \210\306 \205\324\307\310\311!\211\203I\312\313 \306 \"\204\314 \206+\315\316\232\205*\317=?\"\211\205\322\320\317!\210 \203;\321 \210\322 \323\324\325\326\327\330\"\"\"\207\310\331!\211\262\203_\323\332\333\334\"\"\210\335\336\"\207\310\337!\211\262\203\256\340\341\342\307\343%\344! >\204~\345\346\347D\"\210\211\211\350p\344! >\204\222\345\346\347D\"\210\350H\351\"\203\242\211\266\202\202\247B\266\202I\266\352!\207\211?\205\266\310\353!\211\262\203\305\354\355\356\357\360#\"\207\310\361!?\205\322\362\363\f\211\211$\266\202\207" [lsp--buffer-workspaces lsp-auto-configure lsp-buffer-uri cl-struct-lsp--client-tags major-mode lsp--require-packages buffer-file-name nil lsp--filter-clients #[128 #1="\301\300\302\303\211\211\2034\211A\262\242\262\262\211\262\2034\304\"\211\262\2034\262\262T\262\202\266\207" [(lsp--matching-clients\? lsp--server-binary-present\?) t 0 nil apply] 10 #2="\n\n(fn &rest ARGS)"] lsp-find-session-folder lsp-session lsp--try-open-in-library-workspace lsp--try-project-root-workspaces (4) 1 lsp-mode lsp--auto-configure lsp--buffer-uri lsp--info "Connected to %s." apply concat mapcar #[257 "\300\301\302!\"\207" [format "[%s]" lsp--workspace-print] 5 "\n\n(fn IT)"] #[128 #1# [(lsp--matching-clients\? lsp--client-download-in-progress\?) t 0 nil apply] 10 #2#] "There are language server(%s) installation in progress.\nThe server(s) will be started in the buffer when it has finished." -map lsp--client-server-id seq-do #[257 "\301!>\204\302\303\304D\"\210\211\211\305p\301!>\204#\302\303\304D\"\210\305H\306\"\2033\211\266\202\2028B\266\202I\207" [cl-struct-lsp--client-tags type-of signal wrong-type-argument lsp--client 32 memql] 9 "\n\n(fn CLIENT)"] #[128 #1# [(lsp--matching-clients\? lsp--client-download-server-fn #[128 #3="\301\300\"?\207" [lsp--client-download-in-progress\? apply] 4 #4="\n\n(fn &rest ARGS)"]) t 0 nil apply] 10 #2#] lsp--completing-read "Unable to find installed server supporting this file. The following servers could be installed automatically: " #[128 "\302\300\"\301\303\304\211\203#\211A\262\242\262\262T\262!\262\202\266\207" [lsp--client-server-id (symbol-name) apply 0 nil] 8 "\n\n(fn &rest ARGS)"] t type-of signal wrong-type-argument lsp--client 32 memql lsp--install-server-internal #[128 #1# [(lsp--matching-clients\? #[128 #3# [lsp--server-binary-present\? apply] 4 #4#]) t 0 nil apply] 10 #2#] lsp--warn "The following servers support current file but do not have automatic installation configuration: %s\nYou may find the installation instructions at https://emacs-lsp.github.io/lsp-mode/page/languages.\n(If you have already installed the server check *lsp-log*)." mapconcat #[257 "\301\302!>\204\303\304\305D\"\210\306H!\207" [cl-struct-lsp--client-tags symbol-name type-of signal wrong-type-argument lsp--client 15] 6 "\n\n(fn CLIENT)"] " " lsp--matching-clients\? lsp--error "There are no language servers supporting current mode `%s' registered with `lsp-mode'.\nThis issue might be caused by:\n1. The language you are trying to use does not have built-in support in `lsp-mode'. You must install the required support manually. Examples of this are `lsp-java' or `lsp-metals'.\n2. The language server that you expect to run is not configured to run for major mode `%s'. You may check that by checking the `:major-modes' that are passed to `lsp-register-client'.\n3. `lsp-mode' doesn't have any integration for the language behind `%s'. Refer to https://emacs-lsp.github.io/lsp-mode/page/languages and https://langserver.org/ .\n4. You are over `tramp'. In this case follow https://emacs-lsp.github.io/lsp-mode/page/remote/.\n5. You have disabled the `lsp-mode' clients for that file. (Check `lsp-enabled-clients' and `lsp-disabled-clients')."] 12 (#$ . 417268) "P"]) #@105 Run `lsp' for the current buffer if the buffer is visible. Returns `t' if `lsp' was run for the buffer. (defalias 'lsp--init-if-visible #[0 "\300 \204\f\301\302\303\"\205\304\305\306\303#\210\307 \210\303\207" [buffer-modified-p get-buffer-window nil t remove-hook window-configuration-change-hook lsp--init-if-visible lsp] 4 (#$ . 421529)]) #@213 Entry point that defers server startup until buffer is visible. `lsp-deferred' will wait until the buffer is visible before invoking `lsp'. This avoids overloading the server with many files when starting Emacs. (defalias 'lsp-deferred #[0 "\301p\302\303\304\305\306\"#\207" [lsp--buffer-deferred t run-with-timer 0 nil make-closure #[0 "\301\300!\205r\300q\210\302 ?\205\303\304\302\305\306$)\207" [V0 buffer-live-p lsp--init-if-visible add-hook window-configuration-change-hook nil t] 5]] 7 (#$ . 421881)]) (defvar lsp-file-truename-cache (make-hash-table :test 'equal)) #@67 Executes BODY caching the `file-truename' calls. (fn &rest BODY) (defalias 'lsp-with-cached-filetrue-name '(macro . #[128 "\300\301\302\303\304BB\305BBE\207" [let ((old-fn (symbol-function 'file-truename))) unwind-protect progn (fset 'file-truename (lambda (file-name &optional counter prev-dirs) (or (gethash file-name lsp-file-truename-cache) (puthash file-name (apply old-fn (list file-name counter prev-dirs)) lsp-file-truename-cache)))) ((fset 'file-truename old-fn))] 7 (#$ . 422466)])) #@23 (fn KEY &rest ARGS) (defalias 'lsp-virtual-buffer-call #[385 "\205\301\"\211\205\302\"\262\207" [lsp--virtual-buffer plist-get apply] 6 (#$ . 422967)]) #@68 Translate COLUMN taking into account virtual buffers. (fn COLUMN) (defalias 'lsp-translate-column #[257 "\300\301\"\206\211\207" [lsp-virtual-buffer-call :real->virtual-char] 4 (#$ . 423137)]) #@64 Translate LINE taking into account virtual buffers. (fn LINE) (defalias 'lsp-translate-line #[257 "\300\301\"\206\211\207" [lsp-virtual-buffer-call :real->virtual-line] 4 (#$ . 423340)]) #@21 (fn &rest CHECKS) (defalias 'lsp--doctor '(macro . #[128 "\300\301\302\303\304\305\306\307\310\311\n\"\"BBEE\207" [-let [buf (current-buffer)] with-current-buffer (get-buffer-create "*lsp-performance*") with-help-window (current-buffer) -map #[257 "\211\211A\262\242@\300\301\302\303\304\305\306EDC\307BBFD\207" [insert format "%s: %s\n" let res with-current-buffer buf ((cond ((eq res :optional) (propertize "NOT AVAILABLE (OPTIONAL)" 'face 'warning)) (res (propertize "OK" 'face 'success)) (t (propertize "ERROR" 'face 'error))))] 13 "\n\n(fn INPUT0)"] -partition 2] 12 (#$ . 423537)])) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias lsp-diagnose lsp-doctor nil make-obsolete "lsp-mode 7.1"] 4) #@32 Validate performance settings. (defalias 'lsp-doctor #[0 "pr\306\307!q\210\310\211\223\210\311 B\312\nB\313 p\314!\211\310\211\315\316\317rq\210\320\321!)\211\322=\2039\323\324\325\326#\202J\211\203E\323\327\325\330#\202J\323\331\325\332#\262#c\210\315\316\333rq\210\334\305!)\211\322=\203i\323\324\325\326#\202z\211\203u\323\327\325\330#\202z\323\331\325\332#\262#c\210\315\316\335rq\210\334\305!\205\220 \336V)\211\322=\203\237\323\324\325\326#\202\260\211\203\253\323\327\325\330#\202\260\323\331\325\332#\262#c\210\315\316\337rq\210\3401\314\341\342\343D!\210\3100\202\317\344\262)\211\322=\203\336\323\324\325\326#\202\357\211\203\352\323\327\325\330#\202\357\323\331\325\332#\262#c\210\315\316\345rq\210,\346V)\211\322=\203\323\324\325\326#\202 \211\203\323\327\325\330#\202 \323\331\325\332#\262#c\210\315\316\347rq\210\350\351!\2038\351 \2069\322)\211\322=\203H\323\324\325\326#\202Y\211\203T\323\327\325\330#\202Y\323\331\325\332#\262#c\262rq\210\352\310\"\262)\320\353!\203w\353\"\202x\211)\266\204+\207" [help-window-point-marker temp-buffer-window-setup-hook temp-buffer-window-show-hook help-window-old-frame standard-output read-process-output-max get-buffer-create "*lsp-performance*" nil help-mode-setup help-mode-finish selected-frame temp-buffer-window-setup format "%s: %s\n" "Checking for Native JSON support" functionp json-serialize :optional propertize "NOT AVAILABLE (OPTIONAL)" face warning "OK" success "ERROR" error "Check emacs supports `read-process-output-max'" boundp "Check `read-process-output-max' default has been changed from 4k" 4096 "Byte compiled against Native JSON (recompile lsp-mode if failing when Native JSON available)" (error) lsp--make-message "a" "b" t "`gc-cons-threshold' increased?" 800000 "Using gccemacs with emacs lisp native compilation (https://akrl.sdf.org/gccemacs.html)" fboundp native-comp-available-p temp-buffer-window-show help-window-setup gc-cons-threshold] 13 (#$ . 424268) nil]) #@57 Return string describing current version of `lsp-mode'. (defalias 'lsp-version #[0 "\302\303!\204\n\304\303!\210\305\306\307\310\311\312\313 \"@!! $\314\315!\203$\316\317\"\207\207" [emacs-version system-type featurep package require format "lsp-mode %s, Emacs %s, %s" package-version-join package-desc-version alist-get lsp-mode package--alist called-interactively-p interactive lsp--info "%s"] 7 (#$ . 426286) nil]) (defalias 'lsp--virtual-buffer-update-position #[0 "\305\306\"\211\203\211 \232?\205'\307 \207\n\205'\302\310!\210\311\310!\210\312\211\312\313\314!\207" [lsp--virtual-buffer-connections lsp--virtual-buffer lsp-managed-mode lsp--buffer-workspaces lsp-buffer-uri -first #[257 "\300\301\"\211 \207" [plist-get :in-range] 4 "\n\n(fn INPUT0)"] lsp-org -1 lsp-mode nil run-hooks lsp-after-diagnostics-hook] 4]) #@98 Adjust on change event to be executed against the proper language server. (fn START END LENGTH) (defalias 'lsp-virtual-buffer-on-change #[771 "\303\304\"\206 \305]\\]\306\307\310# \"\211\205G\303\311\"\211\2037\303\312\"\211\307\313$!)\202Erq\210\314\315$)\262\207" [lsp--before-change-vals lsp--virtual-buffer-connections lsp--buffer-workspaces plist-get :end 0 -first make-closure #[257 "\211\303\304\300\"\205 \303\304\301\")\207" [V0 V1 lsp--virtual-buffer lsp-virtual-buffer-call :in-range] 4 "\n\n(fn VB)"] :with-current-buffer :workspaces #[0 "\303\300\301\302\304$\207" [V0 V1 V2 lsp-on-change #[128 "\301\302\303\304\305\304F\"\306\307 F\207" [lsp--virtual-buffer-point-max :range lsp--range :character 0 :line :text lsp--buffer-content] 7 "\n\n(fn &rest _)"]] 5] lsp-on-change #[128 "\301\302\303\304\305\304F\"\306\307 F\207" [lsp--virtual-buffer-point-max :range lsp--range :character 0 :line :text lsp--buffer-content] 7 "\n\n(fn &rest _)"]] 12 (#$ . 427129)]) #@18 (fn START END) (defalias 'lsp-virtual-buffer-before-change #[514 "\303\304\305\"\"\211\205-\306\307\"\211\203\306\310\"\211\311!)\202+rq\210\312\313\314!!\211)\262\207" [lsp--virtual-buffer-connections lsp--buffer-workspaces lsp--virtual-buffer-point-max -first make-closure #[257 "\302\303\"\211\203\302\304\"\211\305\306\300\"!)\207rq\210\307\310\300\")\207" [V0 lsp--buffer-workspaces plist-get :with-current-buffer :workspaces make-closure #[0 "\301\302\300\"\207" [V0 lsp-virtual-buffer-call :in-range] 3] lsp-virtual-buffer-call :in-range] 6 "\n\n(fn VB)"] plist-get :with-current-buffer :workspaces #[0 "\301\302\303!!\211\207" [lsp--virtual-buffer-point-max lsp--point-to-position lsp-virtual-buffer-call :last-point] 3] lsp--point-to-position lsp-virtual-buffer-call :last-point] 7 (#$ . 428142)]) (defalias 'lsp-patch-on-change-event #[0 "\300\301\302\303#\210\304\301\305\306\303$\210\304\307\310\306\303$\207" [remove-hook after-change-functions lsp-on-change t add-hook lsp-virtual-buffer-on-change nil before-change-functions lsp-virtual-buffer-before-change] 5]) (defalias 'lsp-kill-virtual-buffers #[0 "\301\302\"\207" [lsp--virtual-buffer-connections mapc lsp-virtual-buffer-disconnect] 3]) #@26 (fn POINT INDENTATION) (defalias 'lsp--move-point-in-indentation #[514 "\212b\210\300 \\X\203\300 \202)\207" [point-at-bol] 5 (#$ . 429378)]) (defalias 'lsp-client-download-server-fn 'lsp--client-download-server-fn) #@48 Register flycheck support for MODE. (fn MODE) (defalias 'lsp-flycheck-add-mode #[257 "\300 \210\301\302\"?\205\303\302\"\207" [lsp-diagnostics-lsp-checker-if-needed flycheck-checker-supports-major-mode-p lsp flycheck-add-mode] 4 (#$ . 429610)]) (defalias 'lsp-org #[0 "\305\306\"\211\203\256\307\310\"\211\203( \232?\205\255\211\311\312\313!\210\314\313!\210\315 \207\212\311C\316\317\"\320 A@\307\321\"\307\322\"\307\323\"\307\324\"\325\326\327!AA@\236A\211\203V\330!\202Y\331\332!b\210\311y\210\333 `\311\223b\210[Sy\210\333 `T\311\223p\334S\"\335\336\337\"r\211q\210\316\340\"\216c\210eb\210\341 \342 \343#\210\344 \210eb\210\211\341 Z\262*\262\345\346\347\311\337$\210\350\351!\203\263\352\353!\210\354\316\355#\356\316\357 \"\360\316\361   $\362 \321 \322\343 \363\316\364\"\365\316\366#\367\316\370#\371\372!\373\374\375!\376'\377\316\201@!\"\201A\316\201B(&&&%\201C\316\201D'\"\201E\316\201F%\"\201G\316\201H++#\257& \240\210\201I\242\f#\210 \242B\345\201J\201K\311\337$\210\345\201L\315\311\337$\210\345\201M\201N\311\337$\210\307\242\376\"\211\203\213\307\242\310\"\211\316\201O\"!)\202\246r\242q\210\201P \210\342\242\310\201Q #\210\201Q )\262\211\266\216)\207\212\311C\316\201R\"\320 A@\307\321\"\307\322\"\307\323\"\307\324\"\325\326\327!AA@\236A\211\203\336\330!\202\341\331\332!b\210\311y\210\333 `\311\223b\210[Sy\210\333 `T\311\223p\334S\"\335\336\337\"r\211q\210\316\201S\"\216c\210eb\210\341 \342 \343#\210\344 \210eb\210\211\341 Z\262*\262\345\346\347\311\337$\210\350\351!\203=\352\353!\210\354\316\201T#\356\316\201U \"\360\316\201V   $\362 \321 \322\343 \363\316\201W\"\365\316\201X#\367\316\201Y#\371\372!\373\374\375!\376'\377\316\201Z!\"\201A\316\201[(&&&%\201C\316\201\\'\"\201E\316\201]%\"\201G\316\201^++#\257& \240\210\201I\242\f#\210 \242B\345\201J\201K\311\337$\210\345\201L\315\311\337$\210\345\201M\201N\311\337$\210\307\242\376\"\211\203!\307\242\310\"\211\316\201_\"!)\202<r\242q\210\201P \210\342\242\310\201Q #\210\201Q )\262\211\266\216)\207" [lsp--virtual-buffer-connections lsp--virtual-buffer lsp--buffer-workspaces lsp-buffer-uri lsp--virtual-buffer-mappings -first #[257 "\300\301\"\211 \207" [plist-get :in-range] 4 "\n\n(fn INPUT0)"] plist-get :workspaces nil lsp-mode 1 lsp-managed-mode lsp-patch-on-change-event make-closure #[257 "r\305\300\242\306\"q\210\305\300\242\307\"\305\300\242\310\"\305\300\242\311\"\305\300\242\312\"\300\242\211\212 \210 -\266\202)\207" [V0 major-mode buffer-file-name lsp--virtual-buffer lsp--buffer-workspaces plist-get :buffer :major-mode :buffer-file-name :goto-buffer :workspaces] 5 "\n\n(fn F)"] org-element-context :begin :end :post-blank :language :tangle org-babel-get-src-block-info light f-expand user-error "You should specify file name in the src block header." make-marker buffer-substring-no-properties generate-new-buffer #1=" *temp*" t #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] current-indentation plist-put :indentation org-do-remove-indentation add-hook post-command-hook lsp--virtual-buffer-update-position fboundp flycheck-add-mode lsp-flycheck-add-mode org-mode :in-range #[256 "\302\300\206`\301S#\207" [V0 V1 <=] 5 "\n\n(fn &optional POINT)"] :goto-buffer #[0 "\300b\207" [V0] 1] :buffer-string #[0 "\303\300\301S\"\304\305\306\"r\211q\210\307\310\"\216c\210eb\210m\2046``\302\\\311 V\203+\311 \202.`\302\\|\210\312y\210\202\303ed\"*\207" [V0 V1 V2 buffer-substring-no-properties generate-new-buffer #1# t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] point-at-eol nil] 5] :buffer :last-point #[0 "\300S\207" [V0] 1] :cur-position #[0 "\n\203#\212\303\304 \304\300!Z\305`\306 Z\301Z\211\307W\203\307\202\211\262F)\207\310\214~\210\212\303\304 \304\300!Z\305`\306 Z\301Z\211\307W\203A\307\202B\211\262F+\207" [V0 V1 lsp--already-widened :line lsp--cur-line :character line-beginning-position 0 t] 6] :line/character->point #[514 "\304\301 \203&\212\300b\210y\210\305 `ZV\203\211\202 u\210`\262)\202G\304\214~\210\212\300b\210y\210\305 `ZV\203@\211\202Du\210`\262+\\)\207" [V0 V1 inhibit-field-text-motion lsp--already-widened t line-end-position] 7 "\n\n(fn LINE CHARACTER)"] :major-mode org-src-get-lang-mode :buffer-file-name :buffer-uri lsp--path-to-uri :with-current-buffer :buffer-live\? #[257 "\301\300!\207" [V0 buffer-live-p] 3 "\n\n(fn _)"] :buffer-name #[257 "\304\305\306\307\303!\301\302\300%\310\311#\207" [V0 V1 V2 V3 propertize format #2="%s(%s:%s)%s" buffer-name face italic] 8 "\n\n(fn _)"] :real->virtual-line #[257 "\211\301\300!\\S\207" [V0 line-number-at-pos] 4 "\n\n(fn LINE)"] :real->virtual-char #[257 "\211\300\\\207" [V0] 3 "\n\n(fn CHAR)"] :cleanup #[0 "\300\302\211\223\210\301\302\211\223\207" [V0 V1 nil] 3] puthash after-save-hook org-babel-tangle lsp-after-open-hook kill-buffer-hook lsp-kill-virtual-buffers #[0 "\301 \210\302\300\242\303\304 #\210\304 \207" [V0 lsp plist-put :workspaces lsp-workspaces] 4] lsp lsp-workspaces #[257 "r\305\300\242\306\"q\210\305\300\242\307\"\305\300\242\310\"\305\300\242\311\"\305\300\242\312\"\300\242\211\212 \210 -\266\202)\207" [V0 major-mode buffer-file-name lsp--virtual-buffer lsp--buffer-workspaces plist-get :buffer :major-mode :buffer-file-name :goto-buffer :workspaces] 5 "\n\n(fn F)"] #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] #[256 "\302\300\206`\301S#\207" [V0 V1 <=] 5 "\n\n(fn &optional POINT)"] #[0 "\300b\207" [V0] 1] #[0 "\303\300\301S\"\304\305\306\"r\211q\210\307\310\"\216c\210eb\210m\2046``\302\\\311 V\203+\311 \202.`\302\\|\210\312y\210\202\303ed\"*\207" [V0 V1 V2 buffer-substring-no-properties generate-new-buffer #1# t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] point-at-eol nil] 5] #[0 "\300S\207" [V0] 1] #[0 "\n\203#\212\303\304 \304\300!Z\305`\306 Z\301Z\211\307W\203\307\202\211\262F)\207\310\214~\210\212\303\304 \304\300!Z\305`\306 Z\301Z\211\307W\203A\307\202B\211\262F+\207" [V0 V1 lsp--already-widened :line lsp--cur-line :character line-beginning-position 0 t] 6] #[514 "\304\301 \203&\212\300b\210y\210\305 `ZV\203\211\202 u\210`\262)\202G\304\214~\210\212\300b\210y\210\305 `ZV\203@\211\202Du\210`\262+\\)\207" [V0 V1 inhibit-field-text-motion lsp--already-widened t line-end-position] 7 "\n\n(fn LINE CHARACTER)"] #[257 "\301\300!\207" [V0 buffer-live-p] 3 "\n\n(fn _)"] #[257 "\304\305\306\307\303!\301\302\300%\310\311#\207" [V0 V1 V2 V3 propertize format #2# buffer-name face italic] 8 "\n\n(fn _)"] #[257 "\211\301\300!\\S\207" [V0 line-number-at-pos] 4 "\n\n(fn LINE)"] #[257 "\211\300\\\207" [V0] 3 "\n\n(fn CHAR)"] #[0 "\300\302\211\223\210\301\302\211\223\207" [V0 V1 nil] 3] #[0 "\301 \210\302\300\242\303\304 #\210\304 \207" [V0 lsp plist-put :workspaces lsp-workspaces] 4]] 57 nil nil]) #@23 (fn VIRTUAL-BUFFER) (defalias 'lsp-virtual-buffer-disconnect #[257 "\304\305\"\211\203T\304\306\"\211\203P\304\307\"\211\203&\304\310\"\211\311!\210)\210\202/rq\210\312 \210)\210\313 \"\n=\203<\314\211\203C\211 \210\315 \"\210\316 \210\317\320\"\207\321\322!\207\321\322!\207" [lsp--buffer-workspaces lsp--virtual-buffer-connections lsp--virtual-buffer lsp--virtual-buffer-mappings plist-get :buffer-file-name :cleanup :with-current-buffer :workspaces #[0 "\300 \207" [lsp--text-document-did-close] 1] lsp--text-document-did-close -remove-item nil remhash lsp--virtual-buffer-update-position lsp--info "Disconnected from buffer %s" lsp--error "Nothing to disconnect from?"] 7 (#$ . 436663) (byte-code "\206 \205 \302\303 \304#C\207" [lsp--virtual-buffer lsp--virtual-buffer-connections lsp--completing-read "Select virtual buffer to disconnect: " #[257 "\300\301\"\207" [plist-get :buffer-file-name] 5 "\n\n(fn INPUT0)"]] 4)]) (provide 'lsp-mode)