summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/lang/html.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/lang/html.lua')
-rw-r--r--.config/nvim/lua/lang/html.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/.config/nvim/lua/lang/html.lua b/.config/nvim/lua/lang/html.lua
new file mode 100644
index 0000000..d5a02b6
--- /dev/null
+++ b/.config/nvim/lua/lang/html.lua
@@ -0,0 +1,47 @@
+local M = {}
+
+M.config = function()
+ O.lang.html = {
+ linters = {
+ "tidy",
+ -- https://docs.errata.ai/vale/scoping#html
+ "vale",
+ },
+ }
+end
+
+M.format = function()
+ -- TODO: implement formatters (if applicable)
+ return "No formatters configured!"
+end
+
+M.lint = function()
+ require("lint").linters_by_ft = {
+ html = O.lang.html.linters,
+ }
+end
+
+M.lsp = function()
+ if not require("utils").check_lsp_client_active "html" then
+ -- npm install -g vscode-html-languageserver-bin
+ local capabilities = vim.lsp.protocol.make_client_capabilities()
+ capabilities.textDocument.completion.completionItem.snippetSupport = true
+
+ require("lspconfig").html.setup {
+ cmd = {
+ "node",
+ DATA_PATH .. "/lspinstall/html/vscode-html/html-language-features/server/dist/node/htmlServerMain.js",
+ "--stdio",
+ },
+ on_attach = require("lsp").common_on_attach,
+ capabilities = capabilities,
+ }
+ end
+end
+
+M.dap = function()
+ -- TODO: implement dap
+ return "No DAP configured!"
+end
+
+return M