aboutsummaryrefslogtreecommitdiffstats
path: root/elpa/lsp-mode-20220505.630/lsp-html.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/lsp-mode-20220505.630/lsp-html.el')
-rw-r--r--elpa/lsp-mode-20220505.630/lsp-html.el200
1 files changed, 200 insertions, 0 deletions
diff --git a/elpa/lsp-mode-20220505.630/lsp-html.el b/elpa/lsp-mode-20220505.630/lsp-html.el
new file mode 100644
index 0000000..00b526a
--- /dev/null
+++ b/elpa/lsp-mode-20220505.630/lsp-html.el
@@ -0,0 +1,200 @@
+;;; lsp-html.el --- vscode-html-languageserver configuration -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2019 Vibhav Pant
+
+;; Author: Vibhav Pant <vibhavp@gmail.com>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'lsp-mode)
+
+(defgroup lsp-html nil
+ "LSP support for HTML, using vscode's built-in language server."
+ :group 'lsp-mode
+ :link '(url-link "https://github.com/microsoft/vscode/tree/main/extensions/html-language-features/server")
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-experimental-custom-data nil
+ "A list of JSON file paths that define custom tags, properties and other HTML
+syntax constructs. Only workspace folder setting will be read."
+ :type '(choice (const nil) string)
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-enable t
+ "Enable/disable default HTML formatter."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-wrap-line-length 120
+ "Maximum amount of characters per line (0 = disable)."
+ :type 'number
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-unformatted "wbr"
+ nil
+ :type '(choice (const nil) string)
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-content-unformatted "pre,code,textarea"
+ nil
+ :group 'lsp-html
+ :type '(choice (const nil) string)
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-indent-inner-html nil
+ nil
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-preserve-new-lines t
+ "Controls whether existing line breaks before elements should be preserved.
+Only works before elements, not inside tags or for text."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-max-preserve-new-lines nil
+ nil
+ :type '(choice (const nil) integer)
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-indent-handlebars nil nil
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-end-with-newline nil
+ "End with a newline."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-extra-liners "head, body, /html"
+ nil
+ :type '(choice (const nil) string)
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-format-wrap-attributes "auto"
+ "Wrap attributes."
+ :type '(choice
+ (const "auto")
+ (const "force")
+ (const "force-aligned")
+ (const "force-expand-multiline")
+ (const "aligned-multiple")
+ (const "preserve")
+ (const "preserve-aligned"))
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-suggest-html5 t
+ "Controls whether the built-in HTML language support suggests HTML5 tags,
+properties and values."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-validate-scripts t
+ "Controls whether the built-in HTML language support validates embedded
+scripts."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-validate-styles t
+ "Controls whether the built-in HTML language support validates embedded
+styles."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-auto-closing-tags t
+ "Enable/disable autoclosing of HTML tags."
+ :type 'boolean
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(defcustom lsp-html-trace-server "off"
+ "Traces the communication between VS Code and the HTML language server."
+ :type '(choice
+ (const "off")
+ (const "messages")
+ (const "verbose"))
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.1"))
+
+(lsp-register-custom-settings
+ '(("html.trace.server" lsp-html-trace-server)
+ ("html.autoClosingTags" lsp-html-auto-closing-tags t)
+ ("html.validate.styles" lsp-html-validate-styles t)
+ ("html.validate.scripts" lsp-html-validate-scripts t)
+ ("html.suggest.html5" lsp-html-suggest-html5 t)
+ ("html.format.wrapAttributes" lsp-html-format-wrap-attributes)
+ ("html.format.extraLiners" lsp-html-format-extra-liners)
+ ("html.format.endWithNewline" lsp-html-format-end-with-newline t)
+ ("html.format.indentHandlebars" lsp-html-format-indent-handlebars t)
+ ("html.format.maxPreserveNewLines" lsp-html-format-max-preserve-new-lines)
+ ("html.format.preserveNewLines" lsp-html-format-preserve-new-lines t)
+ ("html.format.indentInnerHtml" lsp-html-format-indent-inner-html t)
+ ("html.format.contentUnformatted" lsp-html-format-content-unformatted)
+ ("html.format.unformatted" lsp-html-format-unformatted)
+ ("html.format.wrapLineLength" lsp-html-format-wrap-line-length)
+ ("html.format.enable" lsp-html-format-enable t)
+ ("html.experimental.customData" lsp-html-experimental-custom-data)))
+
+(defcustom lsp-html-server-command-args '("--stdio")
+ "Command to start html-languageserver."
+ :type '(repeat string)
+ :group 'lsp-html
+ :package-version '(lsp-mode . "6.3"))
+
+(lsp-dependency 'html-language-server
+ '(:system "vscode-html-language-server")
+ '(:npm :package "vscode-langservers-extracted"
+ :path "vscode-html-language-server"))
+
+(lsp-register-client
+ (make-lsp-client :new-connection (lsp-stdio-connection
+ (lambda ()
+ (cons (lsp-package-path 'html-language-server)
+ lsp-html-server-command-args)))
+ :activation-fn (lsp-activate-on "html")
+ :priority -4
+ :completion-in-comments? t
+ :server-id 'html-ls
+ :initialized-fn (lambda (w)
+ (with-lsp-workspace w
+ (lsp--set-configuration
+ (lsp-configuration-section "html"))))
+ :download-server-fn (lambda (_client callback error-callback _update?)
+ (lsp-package-ensure
+ 'html-language-server callback
+ error-callback))))
+
+(lsp-consistency-check lsp-html)
+
+(provide 'lsp-html)
+;;; lsp-html.el ends here