default-config.lua 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226
  1. CONFIG_PATH = os.getenv "HOME" .. "/.local/share/lunarvim/lvim"
  2. DATA_PATH = vim.fn.stdpath "data"
  3. CACHE_PATH = vim.fn.stdpath "cache"
  4. TERMINAL = vim.fn.expand "$TERMINAL"
  5. USER = vim.fn.expand "$USER"
  6. lvim = {
  7. leader = "space",
  8. colorscheme = "spacegray",
  9. line_wrap_cursor_movement = true,
  10. transparent_window = false,
  11. format_on_save = true,
  12. vsnip_dir = os.getenv "HOME" .. "/.config/snippets",
  13. database = { save_location = "~/.config/lunarvim_db", auto_execute = 1 },
  14. keys = {},
  15. -- TODO why do we need this?
  16. builtin = {
  17. lspinstall = {},
  18. telescope = {},
  19. compe = {},
  20. autopairs = {},
  21. treesitter = {},
  22. nvimtree = {},
  23. gitsigns = {},
  24. which_key = {},
  25. comment = {},
  26. rooter = {},
  27. galaxyline = {},
  28. bufferline = {},
  29. dap = {},
  30. dashboard = {},
  31. terminal = {},
  32. },
  33. lsp = {
  34. completion = {
  35. item_kind = {
  36. "  (Text) ",
  37. "  (Method)",
  38. "  (Function)",
  39. "  (Constructor)",
  40. " ﴲ (Field)",
  41. "[] (Variable)",
  42. "  (Class)",
  43. " ﰮ (Interface)",
  44. "  (Module)",
  45. " 襁 (Property)",
  46. "  (Unit)",
  47. "  (Value)",
  48. " 練 (Enum)",
  49. "  (Keyword)",
  50. "  (Snippet)",
  51. "  (Color)",
  52. "  (File)",
  53. "  (Reference)",
  54. "  (Folder)",
  55. "  (EnumMember)",
  56. " ﲀ (Constant)",
  57. " ﳤ (Struct)",
  58. "  (Event)",
  59. "  (Operator)",
  60. "  (TypeParameter)",
  61. },
  62. },
  63. diagnostics = {
  64. signs = {
  65. active = true,
  66. values = {
  67. { name = "LspDiagnosticsSignError", text = "" },
  68. { name = "LspDiagnosticsSignWarning", text = "" },
  69. { name = "LspDiagnosticsSignHint", text = "" },
  70. { name = "LspDiagnosticsSignInformation", text = "" },
  71. },
  72. },
  73. virtual_text = {
  74. prefix = "",
  75. spacing = 0,
  76. },
  77. underline = true,
  78. severity_sort = true,
  79. },
  80. override = {},
  81. document_highlight = true,
  82. popup_border = "single",
  83. on_attach_callback = nil,
  84. on_init_callback = nil,
  85. },
  86. plugins = {
  87. -- use config.lua for this not put here
  88. },
  89. autocommands = {},
  90. debug = false,
  91. }
  92. local schemas = nil
  93. local lsp = require "lsp"
  94. local common_on_attach = lsp.common_on_attach
  95. local common_capabilities = lsp.common_capabilities()
  96. local common_on_init = lsp.common_on_init
  97. local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls")
  98. if status_ok then
  99. schemas = jsonls_settings.get_default_schemas()
  100. end
  101. -- TODO move all of this into lang specific files, only require when using
  102. lvim.lang = {
  103. asm = {
  104. formatters = {
  105. {
  106. -- @usage can be asmfmt
  107. exe = "",
  108. args = {},
  109. },
  110. },
  111. linters = {},
  112. lsp = {
  113. provider = "",
  114. setup = {},
  115. },
  116. },
  117. beancount = {
  118. formatters = {
  119. {
  120. -- @usage can be bean_format
  121. exe = "",
  122. args = {},
  123. },
  124. },
  125. linters = {},
  126. lsp = {
  127. provider = "beancount",
  128. setup = {
  129. cmd = { "beancount-langserver" },
  130. on_attach = common_on_attach,
  131. on_init = common_on_init,
  132. capabilities = common_capabilities,
  133. },
  134. },
  135. },
  136. c = {
  137. formatters = {
  138. {
  139. -- @usage can be clang_format or uncrustify
  140. exe = "",
  141. args = {},
  142. stdin = true,
  143. },
  144. },
  145. linters = {},
  146. lsp = {
  147. provider = "clangd",
  148. setup = {
  149. cmd = {
  150. DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd",
  151. "--background-index",
  152. "--header-insertion=never",
  153. "--cross-file-rename",
  154. "--clang-tidy",
  155. "--clang-tidy-checks=-*,llvm-*,clang-analyzer-*",
  156. },
  157. on_attach = common_on_attach,
  158. on_init = common_on_init,
  159. capabilities = common_capabilities,
  160. },
  161. },
  162. },
  163. cpp = {
  164. formatters = {
  165. {
  166. -- @usage can be clang_format or uncrustify
  167. exe = "",
  168. args = {},
  169. stdin = true,
  170. },
  171. },
  172. linters = {},
  173. lsp = {
  174. provider = "clangd",
  175. setup = {
  176. cmd = {
  177. DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd",
  178. "--background-index",
  179. "--header-insertion=never",
  180. "--cross-file-rename",
  181. "--clang-tidy",
  182. "--clang-tidy-checks=-*,llvm-*,clang-analyzer-*",
  183. },
  184. on_attach = common_on_attach,
  185. on_init = common_on_init,
  186. capabilities = common_capabilities,
  187. },
  188. },
  189. },
  190. crystal = {
  191. formatters = {
  192. {
  193. -- @usage can be crystal_format
  194. exe = "",
  195. args = {},
  196. },
  197. },
  198. linters = {},
  199. lsp = {
  200. provider = "crystalline",
  201. setup = {
  202. cmd = { "crystalline" },
  203. on_attach = common_on_attach,
  204. on_init = common_on_init,
  205. capabilities = common_capabilities,
  206. },
  207. },
  208. },
  209. cs = {
  210. formatters = {
  211. {
  212. -- @usage can be clang_format or uncrustify
  213. exe = "",
  214. args = {},
  215. },
  216. },
  217. linters = {},
  218. lsp = {
  219. provider = "omnisharp",
  220. setup = {
  221. cmd = {
  222. DATA_PATH .. "/lspinstall/csharp/omnisharp/run",
  223. "--languageserver",
  224. "--hostPID",
  225. tostring(vim.fn.getpid()),
  226. },
  227. on_attach = common_on_attach,
  228. on_init = common_on_init,
  229. capabilities = common_capabilities,
  230. },
  231. },
  232. },
  233. cmake = {
  234. formatters = {
  235. {
  236. -- @usage can be cmake_format
  237. exe = "",
  238. args = {},
  239. },
  240. },
  241. linters = {},
  242. lsp = {
  243. provider = "cmake",
  244. setup = {
  245. cmd = {
  246. DATA_PATH .. "/lspinstall/cmake/venv/bin/cmake-language-server",
  247. "--stdio",
  248. },
  249. on_attach = common_on_attach,
  250. on_init = common_on_init,
  251. capabilities = common_capabilities,
  252. },
  253. },
  254. },
  255. clojure = {
  256. formatters = { {
  257. exe = "",
  258. args = {},
  259. } },
  260. linters = {},
  261. lsp = {
  262. provider = "clojure_lsp",
  263. setup = {
  264. cmd = {
  265. DATA_PATH .. "/lspinstall/clojure/clojure-lsp",
  266. "--stdio",
  267. },
  268. on_attach = common_on_attach,
  269. on_init = common_on_init,
  270. capabilities = common_capabilities,
  271. },
  272. },
  273. },
  274. css = {
  275. formatters = {
  276. {
  277. -- @usage can be prettier or prettierd
  278. exe = "",
  279. args = {},
  280. },
  281. },
  282. linters = {},
  283. lsp = {
  284. provider = "cssls",
  285. setup = {
  286. cmd = {
  287. "node",
  288. DATA_PATH .. "/lspinstall/css/vscode-css/css-language-features/server/dist/node/cssServerMain.js",
  289. "--stdio",
  290. },
  291. on_attach = common_on_attach,
  292. on_init = common_on_init,
  293. capabilities = common_capabilities,
  294. },
  295. },
  296. },
  297. d = {
  298. formatters = {
  299. {
  300. -- @usage can be dfmt
  301. exe = "",
  302. args = {},
  303. },
  304. },
  305. linters = {},
  306. lsp = {
  307. provider = "serve_d",
  308. setup = {
  309. cmd = { "serve-d" },
  310. on_attach = common_on_attach,
  311. on_init = common_on_init,
  312. capabilities = common_capabilities,
  313. },
  314. },
  315. },
  316. dart = {
  317. formatters = {
  318. {
  319. -- @usage can be dart_format
  320. exe = "",
  321. args = {},
  322. stdin = true,
  323. },
  324. },
  325. linters = {},
  326. lsp = {
  327. provider = "dartls",
  328. setup = {
  329. cmd = {
  330. "dart",
  331. "/usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot",
  332. "--lsp",
  333. },
  334. on_attach = common_on_attach,
  335. on_init = common_on_init,
  336. capabilities = common_capabilities,
  337. },
  338. },
  339. },
  340. docker = {
  341. formatters = {
  342. {
  343. exe = "",
  344. args = {},
  345. },
  346. -- @usage can be {"hadolint"}
  347. },
  348. linters = {},
  349. lsp = {
  350. provider = "dockerls",
  351. setup = {
  352. cmd = {
  353. DATA_PATH .. "/lspinstall/dockerfile/node_modules/.bin/docker-langserver",
  354. "--stdio",
  355. },
  356. on_attach = common_on_attach,
  357. on_init = common_on_init,
  358. capabilities = common_capabilities,
  359. },
  360. },
  361. },
  362. elixir = {
  363. formatters = {
  364. {
  365. -- @usage can be mix
  366. exe = "",
  367. args = {},
  368. stdin = true,
  369. },
  370. },
  371. linters = {},
  372. lsp = {
  373. provider = "elixirls",
  374. setup = {
  375. cmd = {
  376. DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh",
  377. },
  378. on_attach = common_on_attach,
  379. on_init = common_on_init,
  380. capabilities = common_capabilities,
  381. },
  382. },
  383. },
  384. elm = {
  385. formatters = {
  386. {
  387. -- @usage can be elm_format
  388. exe = "",
  389. args = {},
  390. stdin = true,
  391. },
  392. },
  393. linters = {},
  394. lsp = {
  395. provider = "elmls",
  396. setup = {
  397. cmd = {
  398. DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-language-server",
  399. },
  400. on_attach = common_on_attach,
  401. on_init = common_on_init,
  402. -- init_options = {
  403. -- elmAnalyseTrigger = "change",
  404. -- elmFormatPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-format",
  405. -- elmPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/",
  406. -- elmTestPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-test",
  407. -- },
  408. },
  409. },
  410. },
  411. erlang = {
  412. formatters = {
  413. {
  414. -- @usage can be erlfmt
  415. exe = "",
  416. args = {},
  417. },
  418. },
  419. linters = {},
  420. lsp = {
  421. provider = "erlangls",
  422. setup = {
  423. cmd = {
  424. "erlang_ls",
  425. },
  426. on_attach = common_on_attach,
  427. on_init = common_on_init,
  428. capabilities = common_capabilities,
  429. },
  430. },
  431. },
  432. emmet = { active = false },
  433. fish = {
  434. formatters = {
  435. {
  436. -- @usage can be fish_indent
  437. exe = "",
  438. args = {},
  439. },
  440. },
  441. linters = {},
  442. lsp = {
  443. provider = "",
  444. setup = {
  445. on_attach = common_on_attach,
  446. on_init = common_on_init,
  447. capabilities = common_capabilities,
  448. },
  449. },
  450. },
  451. go = {
  452. formatters = {
  453. {
  454. -- @usage can be gofmt or goimports or gofumpt
  455. exe = "",
  456. args = {},
  457. stdin = true,
  458. },
  459. },
  460. linters = {},
  461. lsp = {
  462. provider = "gopls",
  463. setup = {
  464. cmd = {
  465. DATA_PATH .. "/lspinstall/go/gopls",
  466. },
  467. on_attach = common_on_attach,
  468. on_init = common_on_init,
  469. capabilities = common_capabilities,
  470. },
  471. },
  472. },
  473. graphql = {
  474. formatters = { {
  475. exe = "",
  476. args = {},
  477. } },
  478. linters = {},
  479. lsp = {
  480. provider = "graphql",
  481. setup = {
  482. cmd = {
  483. "graphql-lsp",
  484. "server",
  485. "-m",
  486. "stream",
  487. },
  488. on_attach = common_on_attach,
  489. on_init = common_on_init,
  490. capabilities = common_capabilities,
  491. },
  492. },
  493. },
  494. haskell = {
  495. formatters = { {
  496. exe = "",
  497. args = {},
  498. } },
  499. linters = {},
  500. lsp = {
  501. provider = "hls",
  502. setup = {
  503. cmd = {DATA_PATH .. "/lspinstall/haskell/hls" },
  504. on_attach = common_on_attach,
  505. on_init = common_on_init,
  506. capabilities = common_capabilities,
  507. },
  508. },
  509. },
  510. html = {
  511. formatters = {
  512. {
  513. -- @usage can be prettier or prettierd
  514. exe = "",
  515. args = {},
  516. },
  517. },
  518. linters = {},
  519. lsp = {
  520. provider = "html",
  521. setup = {
  522. cmd = {
  523. "node",
  524. DATA_PATH .. "/lspinstall/html/vscode-html/html-language-features/server/dist/node/htmlServerMain.js",
  525. "--stdio",
  526. },
  527. on_attach = common_on_attach,
  528. on_init = common_on_init,
  529. capabilities = common_capabilities,
  530. },
  531. },
  532. },
  533. java = {
  534. formatters = {
  535. {
  536. -- @usage can be clang_format or uncrustify
  537. exe = "",
  538. args = {},
  539. },
  540. },
  541. linters = {},
  542. lsp = {
  543. provider = "jdtls",
  544. setup = {
  545. cmd = { DATA_PATH .. "/lspinstall/java/jdtls.sh" },
  546. on_attach = common_on_attach,
  547. on_init = common_on_init,
  548. capabilities = common_capabilities,
  549. },
  550. },
  551. },
  552. json = {
  553. formatters = {
  554. {
  555. -- @usage can be json_tool or prettier or prettierd
  556. exe = "",
  557. args = {},
  558. stdin = true,
  559. },
  560. },
  561. linters = {},
  562. lsp = {
  563. provider = "jsonls",
  564. setup = {
  565. cmd = {
  566. "node",
  567. DATA_PATH .. "/lspinstall/json/vscode-json/json-language-features/server/dist/node/jsonServerMain.js",
  568. "--stdio",
  569. },
  570. on_attach = common_on_attach,
  571. on_init = common_on_init,
  572. capabilities = common_capabilities,
  573. settings = {
  574. json = {
  575. schemas = schemas,
  576. -- = {
  577. -- {
  578. -- fileMatch = { "package.json" },
  579. -- url = "https://json.schemastore.org/package.json",
  580. -- },
  581. -- },
  582. },
  583. },
  584. commands = {
  585. Format = {
  586. function()
  587. vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
  588. end,
  589. },
  590. },
  591. },
  592. },
  593. },
  594. julia = {
  595. formatters = { {
  596. exe = "",
  597. args = {},
  598. } },
  599. linters = {},
  600. lsp = {
  601. provider = "julials",
  602. setup = {
  603. {
  604. "julia",
  605. "--startup-file=no",
  606. "--history-file=no",
  607. -- vim.fn.expand "~/.config/nvim/lua/lsp/julia/run.jl",
  608. CONFIG_PATH .. "/utils/julia/run.jl",
  609. },
  610. on_attach = common_on_attach,
  611. on_init = common_on_init,
  612. capabilities = common_capabilities,
  613. },
  614. },
  615. },
  616. kotlin = {
  617. formatters = { {
  618. exe = "",
  619. args = {},
  620. } },
  621. linters = {},
  622. lsp = {
  623. provider = "kotlin_language_server",
  624. setup = {
  625. cmd = {
  626. DATA_PATH .. "/lspinstall/kotlin/server/bin/kotlin-language-server",
  627. },
  628. on_attach = common_on_attach,
  629. on_init = common_on_init,
  630. root_dir = function(fname)
  631. local util = require "lspconfig/util"
  632. local root_files = {
  633. "settings.gradle", -- Gradle (multi-project)
  634. "settings.gradle.kts", -- Gradle (multi-project)
  635. "build.xml", -- Ant
  636. "pom.xml", -- Maven
  637. }
  638. local fallback_root_files = {
  639. "build.gradle", -- Gradle
  640. "build.gradle.kts", -- Gradle
  641. }
  642. return util.root_pattern(unpack(root_files))(fname) or util.root_pattern(unpack(fallback_root_files))(fname)
  643. end,
  644. },
  645. },
  646. },
  647. lua = {
  648. formatters = {
  649. {
  650. -- @usage can be stylua or lua_format
  651. exe = "",
  652. args = {},
  653. },
  654. },
  655. linters = {},
  656. lsp = {
  657. provider = "sumneko_lua",
  658. setup = {
  659. cmd = {
  660. DATA_PATH .. "/lspinstall/lua/sumneko-lua-language-server",
  661. "-E",
  662. DATA_PATH .. "/lspinstall/lua/main.lua",
  663. },
  664. capabilities = common_capabilities,
  665. on_attach = common_on_attach,
  666. on_init = common_on_init,
  667. settings = {
  668. Lua = {
  669. runtime = {
  670. -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
  671. version = "LuaJIT",
  672. -- Setup your lua path
  673. path = vim.split(package.path, ";"),
  674. },
  675. diagnostics = {
  676. -- Get the language server to recognize the `vim` global
  677. globals = { "vim", "lvim" },
  678. },
  679. workspace = {
  680. -- Make the server aware of Neovim runtime files
  681. library = {
  682. [vim.fn.expand "~/.local/share/lunarvim/lvim/lua"] = true,
  683. [vim.fn.expand "$VIMRUNTIME/lua"] = true,
  684. [vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true,
  685. },
  686. maxPreload = 100000,
  687. preloadFileSize = 1000,
  688. },
  689. },
  690. },
  691. },
  692. },
  693. },
  694. nginx = {
  695. formatters = {
  696. {
  697. -- @usage can be nginx_beautifier
  698. exe = "",
  699. args = {
  700. provider = "",
  701. setup = {},
  702. },
  703. },
  704. },
  705. linters = {},
  706. lsp = {},
  707. },
  708. perl = {
  709. formatters = {
  710. {
  711. -- @usage can be perltidy
  712. exe = "",
  713. args = {},
  714. },
  715. },
  716. linters = {},
  717. lsp = {
  718. provider = "",
  719. setup = {},
  720. },
  721. },
  722. sql = {
  723. formatters = {
  724. {
  725. -- @usage can be sqlformat
  726. exe = "",
  727. args = {},
  728. },
  729. },
  730. linters = {},
  731. lsp = {
  732. provider = "sqls",
  733. setup = {
  734. cmd = { "sqls" },
  735. },
  736. },
  737. },
  738. php = {
  739. formatters = {
  740. {
  741. -- @usage can be phpcbf
  742. exe = "",
  743. args = {},
  744. },
  745. },
  746. linters = {},
  747. lsp = {
  748. provider = "intelephense",
  749. setup = {
  750. cmd = {
  751. DATA_PATH .. "/lspinstall/php/node_modules/.bin/intelephense",
  752. "--stdio",
  753. },
  754. on_attach = common_on_attach,
  755. on_init = common_on_init,
  756. filetypes = { "php", "phtml" },
  757. settings = {
  758. intelephense = {
  759. environment = {
  760. phpVersion = "7.4",
  761. },
  762. },
  763. },
  764. },
  765. },
  766. },
  767. puppet = {
  768. formatters = { {
  769. exe = "",
  770. args = {},
  771. } },
  772. linters = {},
  773. lsp = {
  774. provider = "puppet",
  775. setup = {
  776. on_attach = common_on_attach,
  777. on_init = common_on_init,
  778. capabilities = common_capabilities,
  779. },
  780. },
  781. },
  782. javascript = {
  783. -- @usage can be prettier or prettier_d_slim or prettierd
  784. formatters = {
  785. {
  786. exe = "",
  787. args = {},
  788. },
  789. },
  790. -- @usage can be {"eslint"} or {"eslint_d"}
  791. linters = {},
  792. lsp = {
  793. provider = "tsserver",
  794. setup = {
  795. cmd = {
  796. -- TODO:
  797. DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
  798. "--stdio",
  799. },
  800. on_attach = common_on_attach,
  801. on_init = common_on_init,
  802. capabilities = common_capabilities,
  803. },
  804. },
  805. },
  806. javascriptreact = {
  807. formatters = {
  808. {
  809. -- @usage can be prettier or prettier_d_slim or prettierd
  810. exe = "",
  811. args = {},
  812. },
  813. },
  814. -- @usage can be {"eslint"} or {"eslint_d"}
  815. linters = {},
  816. lsp = {
  817. provider = "tsserver",
  818. setup = {
  819. cmd = {
  820. -- TODO:
  821. DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
  822. "--stdio",
  823. },
  824. on_attach = common_on_attach,
  825. on_init = common_on_init,
  826. capabilities = common_capabilities,
  827. },
  828. },
  829. },
  830. python = {
  831. formatters = {
  832. {
  833. -- @usage can be black or yapf or isort
  834. exe = "",
  835. args = {},
  836. },
  837. },
  838. linters = {},
  839. lsp = {
  840. provider = "pyright",
  841. setup = {
  842. cmd = {
  843. DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver",
  844. "--stdio",
  845. },
  846. on_attach = common_on_attach,
  847. on_init = common_on_init,
  848. capabilities = common_capabilities,
  849. },
  850. },
  851. },
  852. -- R -e 'install.packages("formatR",repos = "http://cran.us.r-project.org")'
  853. -- R -e 'install.packages("readr",repos = "http://cran.us.r-project.org")'
  854. r = {
  855. formatters = {
  856. {
  857. -- @usage can be format_r
  858. exe = "",
  859. args = {},
  860. },
  861. },
  862. linters = {},
  863. lsp = {
  864. provider = "r_language_server",
  865. setup = {
  866. cmd = {
  867. "R",
  868. "--slave",
  869. "-e",
  870. "languageserver::run()",
  871. },
  872. on_attach = common_on_attach,
  873. on_init = common_on_init,
  874. capabilities = common_capabilities,
  875. },
  876. },
  877. },
  878. ruby = {
  879. formatters = {
  880. {
  881. -- @usage can be rufo
  882. exe = "",
  883. args = {},
  884. },
  885. },
  886. linters = {},
  887. lsp = {
  888. provider = "solargraph",
  889. setup = {
  890. cmd = {
  891. DATA_PATH .. "/lspinstall/ruby/solargraph/solargraph",
  892. "stdio",
  893. },
  894. on_attach = common_on_attach,
  895. on_init = common_on_init,
  896. capabilities = common_capabilities,
  897. },
  898. },
  899. },
  900. rust = {
  901. formatters = {
  902. {
  903. -- @usage can be rustfmt
  904. exe = "",
  905. args = {},
  906. },
  907. },
  908. linters = {},
  909. lsp = {
  910. provider = "rust_analyzer",
  911. setup = {
  912. cmd = {
  913. DATA_PATH .. "/lspinstall/rust/rust-analyzer",
  914. },
  915. on_attach = common_on_attach,
  916. on_init = common_on_init,
  917. capabilities = common_capabilities,
  918. },
  919. },
  920. },
  921. scala = {
  922. formatters = {
  923. {
  924. -- @usage can be scalafmt
  925. exe = "",
  926. args = {},
  927. },
  928. },
  929. linters = { "" },
  930. lsp = {
  931. provider = "metals",
  932. setup = {
  933. on_attach = common_on_attach,
  934. on_init = common_on_init,
  935. capabilities = common_capabilities,
  936. },
  937. },
  938. },
  939. sh = {
  940. formatters = {
  941. {
  942. -- @usage can be shfmt
  943. exe = "",
  944. args = {},
  945. },
  946. },
  947. linters = {},
  948. lsp = {
  949. provider = "bashls",
  950. setup = {
  951. cmd = {
  952. DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server",
  953. "start",
  954. },
  955. on_attach = common_on_attach,
  956. on_init = common_on_init,
  957. capabilities = common_capabilities,
  958. },
  959. },
  960. },
  961. svelte = {
  962. formatters = { {
  963. exe = "",
  964. args = {},
  965. } },
  966. linters = {},
  967. lsp = {
  968. provider = "svelte",
  969. setup = {
  970. cmd = {
  971. DATA_PATH .. "/lspinstall/svelte/node_modules/.bin/svelteserver",
  972. "--stdio",
  973. },
  974. on_attach = common_on_attach,
  975. on_init = common_on_init,
  976. capabilities = common_capabilities,
  977. },
  978. },
  979. },
  980. swift = {
  981. formatters = {
  982. {
  983. -- @usage can be swiftformat
  984. exe = "",
  985. args = {},
  986. },
  987. },
  988. linters = {},
  989. lsp = {
  990. provider = "sourcekit",
  991. setup = {
  992. cmd = {
  993. "xcrun",
  994. "sourcekit-lsp",
  995. },
  996. on_attach = common_on_attach,
  997. on_init = common_on_init,
  998. capabilities = common_capabilities,
  999. },
  1000. },
  1001. },
  1002. tailwindcss = {
  1003. active = false,
  1004. filetypes = {
  1005. "html",
  1006. "css",
  1007. "scss",
  1008. "javascript",
  1009. "javascriptreact",
  1010. "typescript",
  1011. "typescriptreact",
  1012. },
  1013. },
  1014. terraform = {
  1015. formatters = {
  1016. {
  1017. -- @usage can be terraform_fmt
  1018. exe = "",
  1019. args = {},
  1020. },
  1021. },
  1022. linters = {},
  1023. lsp = {
  1024. provider = "terraformls",
  1025. setup = {
  1026. cmd = {
  1027. DATA_PATH .. "/lspinstall/terraform/terraform-ls",
  1028. "serve",
  1029. },
  1030. on_attach = common_on_attach,
  1031. on_init = common_on_init,
  1032. capabilities = common_capabilities,
  1033. },
  1034. },
  1035. },
  1036. tex = {
  1037. formatters = {
  1038. {
  1039. exe = "",
  1040. args = {},
  1041. stdin = false,
  1042. },
  1043. -- @usage can be chktex or vale
  1044. },
  1045. linters = {},
  1046. lsp = {
  1047. provider = "texlab",
  1048. setup = {
  1049. cmd = { DATA_PATH .. "/lspinstall/latex/texlab" },
  1050. on_attach = common_on_attach,
  1051. on_init = common_on_init,
  1052. capabilities = common_capabilities,
  1053. },
  1054. },
  1055. },
  1056. typescript = {
  1057. formatters = {
  1058. {
  1059. -- @usage can be prettier or prettierd or prettier_d_slim
  1060. exe = "",
  1061. args = {},
  1062. },
  1063. -- @usage can be {"eslint"} or {"eslint_d"}
  1064. },
  1065. linters = {},
  1066. lsp = {
  1067. provider = "tsserver",
  1068. setup = {
  1069. cmd = {
  1070. -- TODO:
  1071. DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
  1072. "--stdio",
  1073. },
  1074. on_attach = common_on_attach,
  1075. on_init = common_on_init,
  1076. capabilities = common_capabilities,
  1077. },
  1078. },
  1079. },
  1080. typescriptreact = {
  1081. formatters = {
  1082. {
  1083. -- @usage can be prettier or prettierd or prettier_d_slim
  1084. exe = "",
  1085. args = {},
  1086. },
  1087. },
  1088. -- @usage can be {"eslint"} or {"eslint_d"}
  1089. linters = {},
  1090. lsp = {
  1091. provider = "tsserver",
  1092. setup = {
  1093. cmd = {
  1094. -- TODO:
  1095. DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
  1096. "--stdio",
  1097. },
  1098. on_attach = common_on_attach,
  1099. on_init = common_on_init,
  1100. capabilities = common_capabilities,
  1101. },
  1102. },
  1103. },
  1104. vim = {
  1105. formatters = {
  1106. {
  1107. exe = "",
  1108. args = {},
  1109. },
  1110. },
  1111. -- @usage can be {"vint"}
  1112. linters = { "" },
  1113. lsp = {
  1114. provider = "vimls",
  1115. setup = {
  1116. cmd = {
  1117. DATA_PATH .. "/lspinstall/vim/node_modules/.bin/vim-language-server",
  1118. "--stdio",
  1119. },
  1120. on_attach = common_on_attach,
  1121. on_init = common_on_init,
  1122. capabilities = common_capabilities,
  1123. },
  1124. },
  1125. },
  1126. vue = {
  1127. formatters = {
  1128. {
  1129. -- @usage can be prettier or prettierd or prettier_d_slim
  1130. exe = "",
  1131. args = {},
  1132. },
  1133. },
  1134. -- @usage can be {"eslint"} or {"eslint_d"}
  1135. linters = {},
  1136. lsp = {
  1137. provider = "vuels",
  1138. setup = {
  1139. cmd = {
  1140. DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls",
  1141. },
  1142. on_attach = common_on_attach,
  1143. on_init = common_on_init,
  1144. capabilities = common_capabilities,
  1145. },
  1146. },
  1147. },
  1148. yaml = {
  1149. formatters = {
  1150. {
  1151. -- @usage can be prettier or prettierd
  1152. exe = "",
  1153. args = {},
  1154. },
  1155. },
  1156. linters = {},
  1157. lsp = {
  1158. provider = "yamlls",
  1159. setup = {
  1160. cmd = {
  1161. DATA_PATH .. "/lspinstall/yaml/node_modules/.bin/yaml-language-server",
  1162. "--stdio",
  1163. },
  1164. on_attach = common_on_attach,
  1165. on_init = common_on_init,
  1166. capabilities = common_capabilities,
  1167. },
  1168. },
  1169. },
  1170. zig = {
  1171. formatters = { {
  1172. exe = "",
  1173. args = {},
  1174. stdin = false,
  1175. } },
  1176. linters = {},
  1177. lsp = {
  1178. provider = "zls",
  1179. setup = {
  1180. cmd = {
  1181. "zls",
  1182. },
  1183. on_attach = common_on_attach,
  1184. on_init = common_on_init,
  1185. capabilities = common_capabilities,
  1186. },
  1187. },
  1188. },
  1189. gdscript = {
  1190. formatter = {},
  1191. linters = {},
  1192. lsp = {
  1193. provider = "gdscript",
  1194. setup = {
  1195. cmd = {
  1196. "nc",
  1197. "localhost",
  1198. "6008",
  1199. },
  1200. on_attach = common_on_attach,
  1201. on_init = common_on_init,
  1202. capabilities = common_capabilities,
  1203. },
  1204. },
  1205. },
  1206. }
  1207. require("core.which-key").config()
  1208. require "core.status_colors"
  1209. require("core.gitsigns").config()
  1210. require("core.compe").config()
  1211. require("core.dashboard").config()
  1212. require("core.dap").config()
  1213. require("core.terminal").config()
  1214. require("core.telescope").config()
  1215. require("core.treesitter").config()
  1216. require("core.nvimtree").config()