diff --git a/Untitled b/Untitled new file mode 100644 index 00000000..69c3ab33 --- /dev/null +++ b/Untitled @@ -0,0 +1,38 @@ +return { + "stevearc/conform.nvim", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local conform = require("conform") + + conform.setup({ + formatters_by_ft = { + javascript = { "prettier" }, + typescript = { "prettier" }, + javascriptreact = { "prettier" }, + typescriptreact = { "prettier" }, + svelte = { "prettier" }, + css = { "prettier" }, + html = { "prettier" }, + json = { "prettier" }, + yaml = { "prettier" }, + markdown = { "prettier" }, + graphql = { "prettier" }, + lua = { "stylua" }, + python = { "isort", "black" }, + }, + format_on_save = { + lsp_fallback = true, + async = false, + timeout_ms = 500, + }, + }) + + vim.keymap.set({ "n", "v" }, "mp", function() + conform.format({ + lsp_fallback = true, + async = false, + timeout_ms = 500, + }) + end, { desc = "Format file or range (in visual mode)" }) + end, +} diff --git a/init.lua b/init.lua index fb2bbd87..337a5028 100644 --- a/init.lua +++ b/init.lua @@ -86,7 +86,7 @@ P.S. You can delete this when you're done too. It's your config now! :) vim.opt.termguicolors = true -- Make the line length 79 -vim.opt.textwidth = 79 +-- vim.opt.textwidth = 79 -- Set as the leader key -- See `:help mapleader` -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) @@ -599,7 +599,6 @@ require('lazy').setup({ -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ local servers = { -- clangd = {}, - gopls = {}, pyright = {}, cssls = {}, cssmodules_ls = {}, @@ -609,6 +608,7 @@ require('lazy').setup({ jsonls = {}, tailwindcss = {}, tsserver = {}, + prettier = {}, -- rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs -- diff --git a/lua/custom/plugins/conform.lua b/lua/custom/plugins/conform.lua new file mode 100644 index 00000000..f56802ea --- /dev/null +++ b/lua/custom/plugins/conform.lua @@ -0,0 +1,38 @@ +return { + "stevearc/conform.nvim", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local conform = require("conform") + + conform.setup({ + formatters_by_ft = { + javascript = { "prettier" }, + typescript = { "prettier" }, + javascriptreact = { "prettier" }, + typescriptreact = { "prettier" }, + svelte = { "prettier" }, + css = { "prettier" }, + html = { "prettier" }, + json = { "prettier" }, + yaml = { "prettier" }, + markdown = { "prettier" }, + graphql = { "prettier" }, + lua = { "stylua" }, + python = { "isort", "black" }, + }, + format_on_save = { + lsp_fallback = true, + async = false, + timeout_ms = 500, + }, + }) + + vim.keymap.set({ "n", "v" }, "mp", function() + conform.format({ + lsp_fallback = true, + async = false, + timeout_ms = 500, + }) + end, { desc = "Format file or range (in visual mode)" }) + end, +} diff --git a/lua/custom/plugins/fugitive.lua b/lua/custom/plugins/fugitive.lua new file mode 100644 index 00000000..6168f4e1 --- /dev/null +++ b/lua/custom/plugins/fugitive.lua @@ -0,0 +1,3 @@ +return { + "tpope/vim/fugitive", +} diff --git a/lua/custom/plugins/linting.lua b/lua/custom/plugins/linting.lua new file mode 100644 index 00000000..5cbd1a85 --- /dev/null +++ b/lua/custom/plugins/linting.lua @@ -0,0 +1,32 @@ +return { + 'mfussenegger/nvim-lint', + event = { + 'BufReadPre', + 'BufNewFile', + }, + config = function() + local lint = require 'lint' + + lint.linters_by_ft = { + javascript = { 'eslint_d' }, + typescript = { 'eslint_d' }, + javascriptreact = { 'eslint_d' }, + typescriptreact = { 'eslint_d' }, + svelte = { 'eslint_d' }, + python = { 'pylint' }, + } + + local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true }) + + vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, { + group = lint_augroup, + callback = function() + lint.try_lint() + end, + }) + + vim.keymap.set('n', 'l', function() + lint.try_lint() + end, { desc = 'Trigger linting for current file' }) + end, +}