Skip to content
This repository was archived by the owner on Apr 16, 2024. It is now read-only.

Commit 3a30fbd

Browse files
committed
feat(modules): add nvim-lint plugin
- Require `is_plugin_disabled` function directly instead of requiring the whole functions module
1 parent c412993 commit 3a30fbd

File tree

4 files changed

+73
-37
lines changed

4 files changed

+73
-37
lines changed

doom_modules.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,12 @@ M.modules = {
3939
"formatter", -- File formatting
4040
"gitsigns", -- Git signs
4141
"kommentary", -- Comments plugin
42+
-- "linter", -- Asynchronous linter, see errors in your code on the fly
4243
"lsp", -- Language Server Protocols
4344
-- "minimap", -- Code minimap, requires github.com/wfxr/code-minimap
4445
-- "ranger", -- Ranger File Browser, requires ranger file browser
4546
"snippets", -- Code snippets
46-
"symbols", -- LSP symbols and tags
47+
-- "symbols", -- LSP symbols and tags
4748
"telescope", -- Highly extendable fuzzy finder over lists
4849
-- "terminal", -- Terminal for Neovim (NOTE: needed for runner and compiler)
4950
-- "trouble", -- A pretty list to help you solve all the trouble your code is causing.

lua/doom/extras/autocmds/init.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
local utils = require("doom.utils")
88
local log = require("doom.extras.logging")
99
local config = require("doom.core.config").config
10+
local is_plugin_disabled = require("doom.core.functions").is_plugin_disabled
1011

1112
log.debug("Loading Doom autocmds module ...")
1213

@@ -120,5 +121,14 @@ if config.doom.preserve_edit_pos then
120121
})
121122
end
122123

124+
-- Linting
125+
if not is_plugin_disabled("linter") then
126+
table.insert(autocmds["doom_extras"], {
127+
"BufWritePost,InsertLeave,TextChanged",
128+
"*",
129+
"lua require('lint').try_lint()",
130+
})
131+
end
132+
123133
-- Create augroups
124134
utils.create_augroups(autocmds)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
return function()
2+
require("lint").linters_by_ft = {
3+
c = { "clangtidy" },
4+
cpp = { "cppcheck" },
5+
css = { "stylelint" },
6+
html = { "tidy", "eslint" },
7+
javascript = { "eslint" },
8+
lua = { "luacheck" },
9+
markdown = { "vale", "markdownlint" },
10+
nix = { "nix" },
11+
python = { "pylint", "flake8", "pycodestyle" },
12+
ruby = { "ruby", "standardrb" },
13+
sh = { "shellcheck" },
14+
typescript = { "eslint" },
15+
}
16+
end

lua/doom/modules/init.lua

Lines changed: 45 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
-- NOTE: We do not provide other LSP integration like coc.nvim, please refer
44
-- to our FAQ to see why.
55

6-
local functions = require("doom.core.functions")
6+
local is_plugin_disabled = require("doom.core.functions").is_plugin_disabled
77

88
---- Packer Bootstrap ---------------------------
99
-------------------------------------------------
@@ -69,7 +69,7 @@ packer.startup(function(use)
6969
})
7070

7171
-- Neorg
72-
local disabled_neorg = functions.is_plugin_disabled("neorg")
72+
local disabled_neorg = is_plugin_disabled("neorg")
7373
use({
7474
"vhyrro/neorg",
7575
branch = "unstable",
@@ -79,7 +79,7 @@ packer.startup(function(use)
7979
})
8080

8181
-- Sessions
82-
local disabled_sessions = functions.is_plugin_disabled("auto-session")
82+
local disabled_sessions = is_plugin_disabled("auto-session")
8383
use({
8484
"folke/persistence.nvim",
8585
config = require("doom.modules.config.doom-persistence"),
@@ -91,15 +91,15 @@ packer.startup(function(use)
9191
--- UI Related ---
9292
-----]]------------[[-----
9393
-- Fancy start screen
94-
local disabled_dashboard = functions.is_plugin_disabled("dashboard")
94+
local disabled_dashboard = is_plugin_disabled("dashboard")
9595
use({
9696
"glepnir/dashboard-nvim",
9797
config = require("doom.modules.config.doom-dashboard"),
9898
disable = disabled_dashboard,
9999
})
100100

101101
-- Doom Colorschemes
102-
local disabled_doom_themes = functions.is_plugin_disabled("doom-themes")
102+
local disabled_doom_themes = is_plugin_disabled("doom-themes")
103103
use({
104104
"GustavoPrietoP/doom-themes.nvim",
105105
disable = disabled_doom_themes,
@@ -113,7 +113,7 @@ packer.startup(function(use)
113113
})
114114

115115
-- File tree
116-
local disabled_tree = functions.is_plugin_disabled("explorer")
116+
local disabled_tree = is_plugin_disabled("explorer")
117117
use({
118118
"kyazdani42/nvim-tree.lua",
119119
requires = "nvim-web-devicons",
@@ -130,7 +130,7 @@ packer.startup(function(use)
130130
})
131131

132132
-- Ranger File Browser
133-
local disabled_ranger = functions.is_plugin_disabled("ranger")
133+
local disabled_ranger = is_plugin_disabled("ranger")
134134
use({
135135
"francoiscabrol/ranger.vim",
136136
requires = "rbgrouleff/bclose.vim",
@@ -139,7 +139,7 @@ packer.startup(function(use)
139139

140140
-- Statusline
141141
-- can be disabled to use your own statusline
142-
local disabled_statusline = functions.is_plugin_disabled("statusline")
142+
local disabled_statusline = is_plugin_disabled("statusline")
143143
use({
144144
"glepnir/galaxyline.nvim",
145145
config = require("doom.modules.config.doom-eviline"),
@@ -149,7 +149,7 @@ packer.startup(function(use)
149149

150150
-- Tabline
151151
-- can be disabled to use your own tabline
152-
local disabled_tabline = functions.is_plugin_disabled("tabline")
152+
local disabled_tabline = is_plugin_disabled("tabline")
153153
use({
154154
"akinsho/nvim-bufferline.lua",
155155
config = require("doom.modules.config.doom-bufferline"),
@@ -159,7 +159,7 @@ packer.startup(function(use)
159159

160160
-- Better terminal
161161
-- can be disabled to use your own terminal plugin
162-
local disabled_terminal = functions.is_plugin_disabled("terminal")
162+
local disabled_terminal = is_plugin_disabled("terminal")
163163
use({
164164
"akinsho/nvim-toggleterm.lua",
165165
config = require("doom.modules.config.doom-toggleterm"),
@@ -170,7 +170,7 @@ packer.startup(function(use)
170170
})
171171

172172
-- Viewer & finder for LSP symbols and tags
173-
local disabled_outline = functions.is_plugin_disabled("symbols")
173+
local disabled_outline = is_plugin_disabled("symbols")
174174
use({
175175
"simrat39/symbols-outline.nvim",
176176
config = require("doom.modules.config.doom-symbols"),
@@ -184,7 +184,7 @@ packer.startup(function(use)
184184

185185
-- Minimap
186186
-- Depends on wfxr/code-minimap to work!
187-
local disabled_minimap = functions.is_plugin_disabled("minimap")
187+
local disabled_minimap = is_plugin_disabled("minimap")
188188
use({
189189
"wfxr/minimap.vim",
190190
disable = disabled_minimap,
@@ -198,7 +198,7 @@ packer.startup(function(use)
198198
})
199199

200200
-- Keybindings menu like Emacs's guide-key
201-
local disabled_whichkey = functions.is_plugin_disabled("which-key")
201+
local disabled_whichkey = is_plugin_disabled("which-key")
202202
use({
203203
"folke/which-key.nvim",
204204
opt = true,
@@ -207,14 +207,14 @@ packer.startup(function(use)
207207
})
208208

209209
-- popup that shows contents of each register
210-
local disabled_show_registers = functions.is_plugin_disabled("show_registers")
210+
local disabled_show_registers = is_plugin_disabled("show_registers")
211211
use({
212212
"tversteeg/registers.nvim",
213213
disable = disabled_show_registers,
214214
})
215215

216216
-- Distraction free environment
217-
local disabled_zen = functions.is_plugin_disabled("zen")
217+
local disabled_zen = is_plugin_disabled("zen")
218218
use({
219219
"kdav5758/TrueZen.nvim",
220220
config = require("doom.modules.config.doom-zen"),
@@ -235,7 +235,7 @@ packer.startup(function(use)
235235
module = "popup",
236236
})
237237

238-
local disabled_telescope = functions.is_plugin_disabled("telescope")
238+
local disabled_telescope = is_plugin_disabled("telescope")
239239
use({
240240
"nvim-telescope/telescope.nvim",
241241
cmd = "Telescope",
@@ -267,7 +267,7 @@ packer.startup(function(use)
267267
-----]]-------------[[-----
268268
-- Git gutter better alternative, written in Lua
269269
-- can be disabled to use your own git gutter plugin
270-
local disabled_gitsigns = functions.is_plugin_disabled("gitsigns")
270+
local disabled_gitsigns = is_plugin_disabled("gitsigns")
271271
use({
272272
"lewis6991/gitsigns.nvim",
273273
config = require("doom.modules.config.doom-gitsigns"),
@@ -277,7 +277,7 @@ packer.startup(function(use)
277277
})
278278

279279
-- Neogit
280-
local disabled_neogit = functions.is_plugin_disabled("neogit")
280+
local disabled_neogit = is_plugin_disabled("neogit")
281281
use({
282282
"TimUntersberger/neogit",
283283
config = function()
@@ -289,7 +289,7 @@ packer.startup(function(use)
289289
})
290290

291291
-- LazyGit integration
292-
local disabled_lazygit = functions.is_plugin_disabled("lazygit")
292+
local disabled_lazygit = is_plugin_disabled("lazygit")
293293
use({
294294
"kdheepak/lazygit.nvim",
295295
requires = "plenary.nvim",
@@ -300,7 +300,7 @@ packer.startup(function(use)
300300
-----[[------------]]-----
301301
--- Completion ---
302302
-----]]------------[[-----
303-
local disabled_lsp = functions.is_plugin_disabled("lsp")
303+
local disabled_lsp = is_plugin_disabled("lsp")
304304
-- Built-in LSP Config
305305
use({
306306
"neovim/nvim-lspconfig",
@@ -326,7 +326,7 @@ packer.startup(function(use)
326326
})
327327

328328
-- Snippets
329-
local disabled_snippets = functions.is_plugin_disabled("snippets")
329+
local disabled_snippets = is_plugin_disabled("snippets")
330330
use({
331331
"L3MON4D3/LuaSnip",
332332
config = require("doom.modules.config.doom-luasnip"),
@@ -353,7 +353,7 @@ packer.startup(function(use)
353353
-----[[-----------]]-----
354354
--- Debugging ---
355355
-----]]-----------[[-----
356-
local disabled_dap = functions.is_plugin_disabled("dap")
356+
local disabled_dap = is_plugin_disabled("dap")
357357
use({
358358
"mfussenegger/nvim-dap",
359359
disable = disabled_dap,
@@ -378,7 +378,7 @@ packer.startup(function(use)
378378
-----]]--------------[[-----
379379
-- Write / Read files without permissions (e.vim.g. /etc files) without having
380380
-- to use `sudo nvim /path/to/file`
381-
local disabled_suda = functions.is_plugin_disabled("suda")
381+
local disabled_suda = is_plugin_disabled("suda")
382382
use({
383383
"lambdalisue/suda.vim",
384384
disable = disabled_suda,
@@ -387,17 +387,26 @@ packer.startup(function(use)
387387

388388
-- File formatting
389389
-- can be disabled to use your own file formatter
390-
local disabled_formatter = functions.is_plugin_disabled("formatter")
390+
local disabled_formatter = is_plugin_disabled("formatter")
391391
use({
392392
"lukas-reineke/format.nvim",
393393
config = require("doom.modules.config.doom-format"),
394394
disable = disabled_formatter,
395395
event = "BufWinEnter",
396396
})
397397

398+
-- Linting
399+
local disabled_linter = is_plugin_disabled("linter")
400+
use({
401+
"mfussenegger/nvim-lint",
402+
config = require("doom.modules.config.doom-lint"),
403+
disable = disabled_linter,
404+
event = "BufWinEnter",
405+
})
406+
398407
-- Autopairs
399408
-- can be disabled to use your own autopairs
400-
local disabled_autopairs = functions.is_plugin_disabled("autopairs")
409+
local disabled_autopairs = is_plugin_disabled("autopairs")
401410
use({
402411
"windwp/nvim-autopairs",
403412
config = require("doom.modules.config.doom-autopairs"),
@@ -406,7 +415,7 @@ packer.startup(function(use)
406415
})
407416

408417
-- Indent Lines
409-
local disabled_indent_lines = functions.is_plugin_disabled("indentlines")
418+
local disabled_indent_lines = is_plugin_disabled("indentlines")
410419
use({
411420
"lukas-reineke/indent-blankline.nvim",
412421
config = require("doom.modules.config.doom-blankline"),
@@ -415,22 +424,22 @@ packer.startup(function(use)
415424
})
416425

417426
-- EditorConfig support
418-
local disabled_editorconfig = functions.is_plugin_disabled("editorconfig")
427+
local disabled_editorconfig = is_plugin_disabled("editorconfig")
419428
use({
420429
"editorconfig/editorconfig-vim",
421430
disable = disabled_editorconfig,
422431
})
423432

424433
-- Comments
425434
-- can be disabled to use your own comments plugin
426-
local disabled_kommentary = functions.is_plugin_disabled("kommentary")
435+
local disabled_kommentary = is_plugin_disabled("kommentary")
427436
use({
428437
"b3nj5m1n/kommentary",
429438
disable = disabled_kommentary,
430439
event = "BufWinEnter",
431440
})
432441

433-
local disabled_contrib = functions.is_plugin_disabled("contrib")
442+
local disabled_contrib = is_plugin_disabled("contrib")
434443
-- Lua 5.1 docs
435444
use({
436445
"milisims/nvim-luaref",
@@ -446,7 +455,7 @@ packer.startup(function(use)
446455
--- Web Related ---
447456
-----]]-------------[[-----
448457
-- Fastest colorizer without external dependencies!
449-
local disabled_colorizer = functions.is_plugin_disabled("colorizer")
458+
local disabled_colorizer = is_plugin_disabled("colorizer")
450459
use({
451460
"norcalli/nvim-colorizer.lua",
452461
config = require("doom.modules.config.doom-colorizer"),
@@ -456,7 +465,7 @@ packer.startup(function(use)
456465

457466
-- HTTP Client support
458467
-- Depends on bayne/dot-http to work!
459-
local disabled_restclient = functions.is_plugin_disabled("restclient")
468+
local disabled_restclient = is_plugin_disabled("restclient")
460469
use({
461470
"NTBBloodbath/rest.nvim",
462471
requires = "plenary.nvim",
@@ -467,7 +476,7 @@ packer.startup(function(use)
467476
event = "BufWinEnter",
468477
})
469478

470-
local disabled_range_highlight = functions.is_plugin_disabled("range-highlight")
479+
local disabled_range_highlight = is_plugin_disabled("range-highlight")
471480
use({
472481
"winston0410/range-highlight.nvim",
473482
requires = {
@@ -480,7 +489,7 @@ packer.startup(function(use)
480489
event = "BufRead",
481490
})
482491

483-
local disabled_firenvim = functions.is_plugin_disabled("firenvim")
492+
local disabled_firenvim = is_plugin_disabled("firenvim")
484493
use({
485494
"glacambre/firenvim",
486495
disable = disabled_firenvim,
@@ -490,15 +499,15 @@ packer.startup(function(use)
490499
config = require("doom.modules.config.doom-fire"),
491500
})
492501

493-
local disabled_todo = functions.is_plugin_disabled("todo_comments")
502+
local disabled_todo = is_plugin_disabled("todo_comments")
494503
use({
495504
"folke/todo-comments.nvim",
496505
requires = "nvim-lua/plenary.nvim",
497506
config = require("doom.modules.config.doom-todo"),
498507
disable = disabled_todo,
499508
})
500509

501-
local disabled_trouble = functions.is_plugin_disabled("trouble")
510+
local disabled_trouble = is_plugin_disabled("trouble")
502511
use({
503512
"folke/trouble.nvim",
504513
cmd = { "Trouble", "TroubleClose", "TroubleRefresh", "TroubleToggle" },
@@ -507,7 +516,7 @@ packer.startup(function(use)
507516
disable = disabled_trouble,
508517
})
509518

510-
local disabled_superman = functions.is_plugin_disabled("superman")
519+
local disabled_superman = is_plugin_disabled("superman")
511520
use({
512521
"jez/vim-superman",
513522
cmd = "SuperMan",

0 commit comments

Comments
 (0)