From 3dadfbbe134ff75a33a093d3e8e3df12d26a136f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20SALVI?= Date: Sun, 31 Dec 2023 12:19:53 +0100 Subject: [PATCH] Adding php to lsp --- .gitignore | 4 +++ lua/config/init.lua | 1 + lua/config/lsp/php.lua | 62 ++++++++++++++++++++++++++++++++++++++++++ nvim_help.sh | 8 +++--- 4 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 lua/config/lsp/php.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..981bb83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +test.* +.eslintrc +.prettierrc +lazy-lock.json diff --git a/lua/config/init.lua b/lua/config/init.lua index 3babd1e..74514ea 100644 --- a/lua/config/init.lua +++ b/lua/config/init.lua @@ -16,3 +16,4 @@ require("config/lsp/lsp-signs") require("config/lsp/bash") require("config/lsp/lua") require("config/lsp/web") +require("config/lsp/php") diff --git a/lua/config/lsp/php.lua b/lua/config/lsp/php.lua new file mode 100644 index 0000000..3eaf587 --- /dev/null +++ b/lua/config/lsp/php.lua @@ -0,0 +1,62 @@ +local ok, mason_lspconfig, mason_tool_installer, lspconfig, conform, lint = pcall(function() + return require("mason-lspconfig"), + require("mason-tool-installer"), + require("lspconfig"), + require("conform"), + require("lint") +end) + +if not ok then + return +end + +mason_lspconfig.setup({ + ensure_installed = { + "phpactor", + }, +}) + +lspconfig.phpactor.setup({ + capabilities = require("config/lsp/lsp-capabilities"), + on_attach = require("config/lsp/lsp-attach"), +}) + +mason_tool_installer.setup({ + ensure_installed = { + "php-cs-fixer", + "phpcs", + }, +}) + +conform.setup({ + formatters_by_ft = { + php = { "php-cs-fixer" }, + }, + format_on_save = { + async = false, + timeout_ms = 500, + lsp_fallback = true, + }, +}) + +vim.keymap.set({ "n", "v" }, "lf", function() + conform.format({ + async = false, + timeout_ms = 500, + lsp_fallback = true, + }) +end, { desc = "Format" }) + +lint.linters_by_ft = { + phpcs = { "phpcs" }, +} + +vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + callback = function() + lint.try_lint() + end, +}) + +vim.keymap.set("n", "ll", function() + lint.try_lint() +end, { desc = "Lint" }) diff --git a/nvim_help.sh b/nvim_help.sh index 8dd9e32..41b4152 100755 --- a/nvim_help.sh +++ b/nvim_help.sh @@ -17,12 +17,12 @@ _RESET="\e[0m" _title() { printf "$_CR$_E1$_BOLD$_BLACK$1" [[ ! -z $3 ]] && printf "$_E_RIGHT" - for (( i=0; i<(( 10 - ${#2} / 2 )); i++ )) + for (( i=0 ; i < 10 - ${#2} / 2 ; i++ )) do printf " " done printf "$2" - for (( i=0; i<(( 10 - ${#2} / 2 )); i++ )) + for (( i=0 ; i < 10 - ${#2} / 2 ; i++ )) do printf " " done @@ -32,7 +32,7 @@ _title() { # _shortcut [string:modifier] [string:key] [string:message] [bool:right] _shortcut() { - _MODIFIER=$(sed "s|+|\\\e[38;5;1m+\\\e[38;5;5m|g" <<< $1) + _MODIFIER="$(sed "s|+|\\\e[38;5;1m+\\\e[38;5;5m|g" <<< "$1")" [[ ! -z $4 ]] && printf "$_E_RIGHT" printf "$_E2" printf "$_PURPLE$_MODIFIER$_RESET" @@ -82,4 +82,4 @@ _title "\e[48;5;204m" "Visual mode" _title "\e[48;5;214m" "not finished yet" -read -n 1 -s +read -r -n 1 -s