Commit 25bdcda9730e
Changed files (3)
dots
config
emacs
nvim
lua
plugins
systems
kyushu
dots/config/emacs/init.el
@@ -782,6 +782,21 @@ minibuffer, even without explicitly focusing it."
'(("\\($(\\(workspaces\\|context\\|params\\)\.[^)]+)\\)" 1 'font-lock-constant-face prepend)
("kind:\s*\\(.*\\)\n" 1 'font-lock-keyword-face prepend))))
+;; Tekton LSP for YAML files containing tekton.dev apiVersion
+;; TODO: replace with just "tekton-lsp" once it's in $PATH
+(with-eval-after-load 'eglot
+ (add-to-list 'eglot-server-programs
+ `(yaml-ts-mode . (,(expand-file-name "~/src/tektoncd/tekton-lsp-go/tekton-lsp")))))
+(defun vde/maybe-start-tekton-lsp ()
+ "Start tekton-lsp via eglot if the buffer contains a Tekton apiVersion."
+ (when (and buffer-file-name
+ (not (file-remote-p default-directory))
+ (save-excursion
+ (goto-char (point-min))
+ (re-search-forward "tekton\\.dev\\|triggers\\.tekton\\.dev" nil t)))
+ (eglot-ensure)))
+(add-hook 'yaml-ts-mode-hook #'vde/maybe-start-tekton-lsp)
+
(use-package orgalist
:commands (orgalist-mode)
:hook ((markdown-mode . orgalist-mode)
dots/config/nvim/lua/plugins/tekton.lua
@@ -1,4 +1,7 @@
-- Tekton LSP: attaches tekton-lsp to YAML files containing tekton.dev apiVersion
+-- TODO: remove hardcoded path once tekton-lsp is in $PATH
+local tekton_lsp_bin = vim.fn.expand("~/src/tektoncd/tekton-lsp-go/tekton-lsp")
+
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
group = vim.api.nvim_create_augroup("tekton_lsp_attach", { clear = true }),
pattern = { "*.yaml", "*.yml" },
@@ -8,7 +11,7 @@ vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
if line:match("tekton%.dev") or line:match("triggers%.tekton%.dev") then
vim.lsp.start({
name = "tekton-lsp",
- cmd = { "tekton-lsp" },
+ cmd = { tekton_lsp_bin },
root_dir = vim.fs.root(ev.buf, { ".git" }) or vim.fn.getcwd(),
})
return
systems/kyushu/home.nix
@@ -78,6 +78,7 @@ in
cliphist-cleanup
slackdump
+ tekton-lsp
];
# Automatic color scheme switching