update
This commit is contained in:
parent
8b868ed944
commit
978519200a
10 changed files with 166 additions and 210 deletions
217
init.lua
217
init.lua
|
|
@ -1,18 +1,18 @@
|
||||||
-- Bootstrap packer.nvim if not already installed
|
-- Bootstrap lazy.nvim (the modern, maintained plugin manager)
|
||||||
local ensure_packer = function()
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
local fn = vim.fn
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
vim.fn.system({
|
||||||
if fn.empty(fn.glob(install_path)) > 0 then
|
"git",
|
||||||
fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path })
|
"clone",
|
||||||
vim.cmd([[packadd packer.nvim]])
|
"--filter=blob:none",
|
||||||
return true
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
end
|
"--branch=stable",
|
||||||
return false
|
lazypath,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
local packer_bootstrap = ensure_packer()
|
-- ── Core configuration (no plugins needed) ───────────────────────────
|
||||||
|
|
||||||
-- Load user configuration files
|
|
||||||
require("user.options")
|
require("user.options")
|
||||||
require("user.keymaps")
|
require("user.keymaps")
|
||||||
require("user.autocmds")
|
require("user.autocmds")
|
||||||
|
|
@ -21,105 +21,130 @@ require("user.files_utils")
|
||||||
require("user.terminal")
|
require("user.terminal")
|
||||||
require("user.android")
|
require("user.android")
|
||||||
require("user.flutter")
|
require("user.flutter")
|
||||||
-- Plugin-dependent modules — wrapped in pcall so init doesn't crash when
|
|
||||||
-- plugins aren't installed yet (e.g. during :PackerSync on a fresh setup).
|
|
||||||
pcall(require, "user.cmp")
|
|
||||||
pcall(require, "user.autopairs")
|
|
||||||
pcall(require, "user.telescope")
|
|
||||||
pcall(require, "user.gruvbox")
|
|
||||||
pcall(require, "user.lsp")
|
|
||||||
pcall(require, "user.typescript-tools")
|
|
||||||
pcall(require, "user.null-ls")
|
|
||||||
pcall(require, "user.treesitter")
|
|
||||||
pcall(require, "user.markdown")
|
|
||||||
pcall(require, "user.comment")
|
|
||||||
pcall(require, "user.trouble")
|
|
||||||
|
|
||||||
return require("packer").startup(function(use)
|
-- Build plugin list — user modules can contribute additional specs
|
||||||
-- Let packer manage itself
|
local test_plugins = require("user.test")
|
||||||
use("wbthomason/packer.nvim")
|
|
||||||
|
-- ── Plugin specifications ────────────────────────────────────────────
|
||||||
|
require("lazy").setup(vim.list_extend({
|
||||||
|
|
||||||
|
-- Colorscheme (high priority — loads before anything else)
|
||||||
|
{
|
||||||
|
"ellisonleao/gruvbox.nvim",
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
require("user.gruvbox")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LSP + Mason (LSP servers, formatters, linters, debuggers)
|
||||||
|
{
|
||||||
|
"williamboman/mason-lspconfig.nvim",
|
||||||
|
dependencies = {
|
||||||
|
{ "williamboman/mason.nvim", build = ":MasonUpdate" },
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
"hrsh7th/cmp-nvim-lsp", -- ensure cmp capabilities are available
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("user.lsp")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Completion framework
|
-- Completion framework
|
||||||
use("hrsh7th/nvim-cmp")
|
{
|
||||||
use("hrsh7th/cmp-buffer")
|
"hrsh7th/nvim-cmp",
|
||||||
use("hrsh7th/cmp-path")
|
dependencies = {
|
||||||
use("hrsh7th/cmp-nvim-lsp")
|
"hrsh7th/cmp-buffer",
|
||||||
use("hrsh7th/cmp-nvim-lua")
|
"hrsh7th/cmp-path",
|
||||||
use("saadparwaiz1/cmp_luasnip")
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
use("L3MON4D3/LuaSnip")
|
"hrsh7th/cmp-nvim-lua",
|
||||||
|
"saadparwaiz1/cmp_luasnip",
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("user.cmp")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Load test plugin configuration
|
-- Treesitter (syntax highlighting, folding, incremental selection)
|
||||||
require("user.test")(use)
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function()
|
||||||
|
require("user.treesitter")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- NERDTree plugin
|
-- Telescope (fuzzy finder — files, grep, buffers, help)
|
||||||
use("preservim/nerdtree")
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
tag = "v0.1.9",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
build = "make",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("user.telescope")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Plugin for integrating formatters/linters (community fork of archived null-ls)
|
-- Auto pairs (automatically close brackets, quotes, etc.)
|
||||||
use("nvimtools/none-ls.nvim")
|
{
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
config = function()
|
||||||
|
require("user.autopairs")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Modern TypeScript integration (replaces archived nvim-lsp-ts-utils)
|
-- TypeScript / JavaScript LSP enhancements (organize imports, etc.)
|
||||||
use({
|
{
|
||||||
"pmizio/typescript-tools.nvim",
|
"pmizio/typescript-tools.nvim",
|
||||||
requires = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" },
|
dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" },
|
||||||
})
|
config = function()
|
||||||
|
require("user.typescript-tools")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Treesitter
|
-- Formatters & linters (community fork of archived null-ls)
|
||||||
use("nvim-treesitter/nvim-treesitter")
|
{
|
||||||
|
"nvimtools/none-ls.nvim",
|
||||||
|
config = function()
|
||||||
|
require("user.null-ls")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Auto pairs
|
-- Java LSP (eclipse.jdt.ls integration)
|
||||||
use("windwp/nvim-autopairs")
|
"mfussenegger/nvim-jdtls",
|
||||||
|
|
||||||
-- LSP Configuration
|
-- Markdown preview (live preview in browser)
|
||||||
use("neovim/nvim-lspconfig")
|
{
|
||||||
|
|
||||||
-- Java Language Server support
|
|
||||||
use("mfussenegger/nvim-jdtls")
|
|
||||||
|
|
||||||
-- Markdown Preview (optional)
|
|
||||||
use({
|
|
||||||
"iamcco/markdown-preview.nvim",
|
"iamcco/markdown-preview.nvim",
|
||||||
run = function()
|
build = function()
|
||||||
vim.fn["mkdp#util#install"]()
|
vim.fn["mkdp#util#install"]()
|
||||||
end,
|
end,
|
||||||
})
|
},
|
||||||
|
|
||||||
use({
|
-- Comment (gc / gb to toggle comments in any language)
|
||||||
"nvim-telescope/telescope.nvim",
|
{
|
||||||
tag = "0.1.8",
|
"numToStr/Comment.nvim",
|
||||||
-- or , branch = '0.1.x',
|
|
||||||
requires = { { "nvim-lua/plenary.nvim" } },
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Comment
|
|
||||||
use 'numToStr/Comment.nvim'
|
|
||||||
|
|
||||||
-- Trouble: workspace diagnostics panel
|
|
||||||
use {
|
|
||||||
"folke/trouble.nvim",
|
|
||||||
requires = { "nvim-tree/nvim-web-devicons" },
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-- Telescope FZF native
|
|
||||||
use({
|
|
||||||
"nvim-telescope/telescope-fzf-native.nvim",
|
|
||||||
run = "make",
|
|
||||||
})
|
|
||||||
|
|
||||||
use({ "ellisonleao/gruvbox.nvim" })
|
|
||||||
|
|
||||||
use({
|
|
||||||
"williamboman/mason.nvim",
|
|
||||||
config = function()
|
config = function()
|
||||||
require("mason").setup()
|
require("user.comment")
|
||||||
end,
|
end,
|
||||||
})
|
},
|
||||||
|
|
||||||
-- Mason LSPConfig for integrating Mason with nvim-lspconfig
|
-- Trouble (pretty diagnostics, references, quickfix panel)
|
||||||
use("williamboman/mason-lspconfig.nvim")
|
{
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
config = function()
|
||||||
|
require("user.trouble")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Automatically install plugins on first run
|
-- NERDTree (file explorer sidebar)
|
||||||
if packer_bootstrap then
|
"preservim/nerdtree",
|
||||||
require("packer").sync()
|
|
||||||
end
|
}, test_plugins))
|
||||||
end)
|
|
||||||
|
|
|
||||||
BIN
jars/ktfmt.jar
BIN
jars/ktfmt.jar
Binary file not shown.
28
lazy-lock.json
Normal file
28
lazy-lock.json
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
|
||||||
|
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
|
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||||
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||||
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
|
"gruvbox.nvim": { "branch": "main", "commit": "154eb5ff5b96d0641307113fa385eaf0d36d9796" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "67029ccdac1ef8941e13b826417bc0ffac24cc86" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
|
||||||
|
"nerdtree": { "branch": "master", "commit": "690d061b591525890f1471c6675bcb5bdc8cdff9" },
|
||||||
|
"none-ls.nvim": { "branch": "main", "commit": "01f8e62ea11603e59ad9ff7afcfa94fd183f76d6" },
|
||||||
|
"nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" },
|
||||||
|
"nvim-jdtls": { "branch": "master", "commit": "6e9d953f0b82bccdb834cfde0e893f3119c22592" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "1c0d8f70dbc8827263eedc3cf7021ceba0f68689" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "7b6cc8949f9999c5ed91436cbe24aa5f99c42025" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||||
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "84b9ba066d1860f7a586ce9cd732fd6c4f77d1d9" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||||
|
"typescript-tools.nvim": { "branch": "master", "commit": "c2f5910074103705661e9651aa841e0d7eea9932" },
|
||||||
|
"vim-test": { "branch": "master", "commit": "2676d84c6901e484df00b5d728bd6a345d47ee12" }
|
||||||
|
}
|
||||||
|
|
@ -17,10 +17,10 @@ require("mason-lspconfig").setup({
|
||||||
-- Remove "jdtls" from here to prevent the 'enable' (nil value) crash
|
-- Remove "jdtls" from here to prevent the 'enable' (nil value) crash
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"pyright",
|
"pyright",
|
||||||
"typescript-language-server",
|
"ts_ls",
|
||||||
"marksman",
|
"marksman",
|
||||||
"kotlin-language-server",
|
|
||||||
"svelte-language-server",
|
"svelte",
|
||||||
"gopls",
|
"gopls",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
@ -43,7 +43,7 @@ require("user.lsp_servers.pyright")
|
||||||
require("user.lsp_servers.ts_ls")
|
require("user.lsp_servers.ts_ls")
|
||||||
require("user.lsp_servers.jdtls")
|
require("user.lsp_servers.jdtls")
|
||||||
require("user.lsp_servers.marksman")
|
require("user.lsp_servers.marksman")
|
||||||
require("user.lsp_servers.kotlin_ls")
|
|
||||||
require("user.lsp_servers.dartls")
|
require("user.lsp_servers.dartls")
|
||||||
require("user.lsp_servers.svelte")
|
require("user.lsp_servers.svelte")
|
||||||
require("user.lsp_servers.golang")
|
require("user.lsp_servers.golang")
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
local function get_dart_sdk_path()
|
local function get_dart_sdk_path()
|
||||||
-- Try Flutter's bundled Dart SDK first
|
-- Try Flutter's bundled Dart SDK first
|
||||||
local flutter_dart = vim.fn.expand("~/flutter/bin/cache/dart-sdk/bin/dart")
|
local flutter_dart = vim.fn.expand("~/development/flutter/bin/cache/dart-sdk/bin/dart")
|
||||||
if vim.fn.executable(flutter_dart) == 1 then
|
if vim.fn.executable(flutter_dart) == 1 then
|
||||||
return flutter_dart
|
return flutter_dart
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
|
||||||
local capabilities = status_ok
|
local capabilities = status_ok
|
||||||
and cmp_nvim_lsp.default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
and cmp_nvim_lsp.default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
or vim.lsp.protocol.make_client_capabilities()
|
or vim.lsp.protocol.make_client_capabilities()
|
||||||
local java_bin = "java" -- use java from PATH
|
local java_bin = "/usr/lib/jvm/java-21-openjdk-amd64/bin/java" -- jdtls requires Java 21+
|
||||||
local jdtls_path = vim.fn.stdpath("data") .. "/mason/packages/jdtls"
|
local jdtls_path = vim.fn.stdpath("data") .. "/mason/packages/jdtls"
|
||||||
local jdtls_launcher_jar = vim.fn.glob(jdtls_path .. "/plugins/org.eclipse.equinox.launcher_*.jar")
|
local jdtls_launcher_jar = vim.fn.glob(jdtls_path .. "/plugins/org.eclipse.equinox.launcher_*.jar")
|
||||||
local lombok_jar = jdtls_path .. "/lombok.jar"
|
local lombok_jar = jdtls_path .. "/lombok.jar"
|
||||||
|
|
@ -29,6 +29,7 @@ vim.lsp.config('jdtls', {
|
||||||
},
|
},
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
-- In 0.11, use root_markers instead of a root_dir function
|
-- In 0.11, use root_markers instead of a root_dir function
|
||||||
|
filetypes = { "java" },
|
||||||
root_markers = { ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" },
|
root_markers = { ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" },
|
||||||
settings = {
|
settings = {
|
||||||
java = {
|
java = {
|
||||||
|
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
-- Kotlin LSP = fwcd kotlin-language-server (installed via Mason).
|
|
||||||
--
|
|
||||||
-- NOTE: the JetBrains `kotlin-lsp` (intellij-server) was tried but it imports
|
|
||||||
-- Android Gradle modules with an EMPTY set of source sets, so it resolves
|
|
||||||
-- nothing for Android (hover/definition/references all return empty). fwcd
|
|
||||||
-- resolves the Gradle compile classpath itself and DOES navigate Android
|
|
||||||
-- projects, so we use it here. (kotlin-lsp remains fine for plain Kotlin/JVM.)
|
|
||||||
--
|
|
||||||
-- CPU/Memory notes for Android projects:
|
|
||||||
-- - Formatting disabled in LSP capabilities — ktfmt in-process spawns a SECOND
|
|
||||||
-- Kotlin compiler, doubling memory (OOMs even at 4GB). Formatting is handled
|
|
||||||
-- externally by null-ls running ktfmt as a separate process.
|
|
||||||
-- - Linting enabled — runs on the same compiler already loaded for completions,
|
|
||||||
-- so no extra memory cost. Provides error diagnostics (red squiggles).
|
|
||||||
-- - Semantic tokens disabled — extra compilation passes, not worth the CPU.
|
|
||||||
-- - 500ms debounce reduces compilation frequency during typing.
|
|
||||||
-- - Persistent tmpdir so the SQLite compilation cache survives across sessions.
|
|
||||||
local bin = vim.fn.expand("~/.local/share/nvim/mason/bin/kotlin-language-server")
|
|
||||||
|
|
||||||
if vim.fn.executable(bin) == 0 then
|
|
||||||
vim.notify("kotlin-language-server not found — run :MasonInstall kotlin-language-server",
|
|
||||||
vim.log.levels.WARN)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Build capabilities, then strip formatting to prevent ktfmt OOMs.
|
|
||||||
local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
|
|
||||||
local capabilities = status_ok and cmp_nvim_lsp.default_capabilities() or vim.lsp.protocol.make_client_capabilities()
|
|
||||||
capabilities.textDocument.formatting = nil
|
|
||||||
capabilities.textDocument.rangeFormatting = nil
|
|
||||||
capabilities.textDocument.onTypeFormatting = nil
|
|
||||||
|
|
||||||
-- 1. Configuration
|
|
||||||
vim.lsp.config('kotlin_language_server', {
|
|
||||||
cmd = { bin },
|
|
||||||
filetypes = { "kotlin" },
|
|
||||||
|
|
||||||
-- Kotlin/Android projects are rooted at a Gradle build file or git repo.
|
|
||||||
-- vim.lsp.config expects callback form: function(bufnr, on_dir).
|
|
||||||
root_dir = function(bufnr, on_dir)
|
|
||||||
local fname = vim.api.nvim_buf_get_name(bufnr)
|
|
||||||
local root = vim.fs.root(fname, {
|
|
||||||
"settings.gradle.kts",
|
|
||||||
"settings.gradle",
|
|
||||||
"build.gradle.kts",
|
|
||||||
"build.gradle",
|
|
||||||
"pom.xml",
|
|
||||||
".git",
|
|
||||||
})
|
|
||||||
on_dir(root or vim.fs.dirname(fname))
|
|
||||||
end,
|
|
||||||
|
|
||||||
capabilities = capabilities,
|
|
||||||
|
|
||||||
-- Strip formatting from the server's advertised capabilities.
|
|
||||||
-- client-side capabilities only prevent the server from expecting format
|
|
||||||
-- requests; server-side capabilities are what vim.lsp.buf.format() actually
|
|
||||||
-- checks. Without this, format-on-save routes through the LSP's ktfmt →
|
|
||||||
-- second Kotlin compiler → OOM.
|
|
||||||
on_attach = function(client)
|
|
||||||
client.server_capabilities.documentFormattingProvider = false
|
|
||||||
client.server_capabilities.documentRangeFormattingProvider = false
|
|
||||||
end,
|
|
||||||
|
|
||||||
-- 6GB heap — Android classpath is large (163 deps + 320 source files).
|
|
||||||
-- Persistent tmpdir so the compilation cache survives across sessions.
|
|
||||||
-- Use Android Studio's JBR 21 — optimised GC/JIT for Kotlin workloads.
|
|
||||||
cmd_env = {
|
|
||||||
KOTLIN_LANGUAGE_SERVER_OPTS = "-Xmx6G -Xms512m -Djava.io.tmpdir=/home/prabhat/.cache/kotlin-ls-fwcd",
|
|
||||||
JAVA_HOME = "/opt/android-studio/jbr",
|
|
||||||
},
|
|
||||||
|
|
||||||
init_options = {
|
|
||||||
debounceTextChanges = 500,
|
|
||||||
},
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
kotlin = {
|
|
||||||
linting = { enabled = true },
|
|
||||||
completion = { enabled = true },
|
|
||||||
semanticTokens = { enabled = false },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- 2. Enable the server
|
|
||||||
vim.lsp.enable('kotlin_language_server')
|
|
||||||
|
|
@ -22,18 +22,6 @@ local sources = {
|
||||||
extra_args = { "--aosp" }, -- optional: use AOSP style formatting
|
extra_args = { "--aosp" }, -- optional: use AOSP style formatting
|
||||||
--command = "google-java-format", -- specify command if not in PATH
|
--command = "google-java-format", -- specify command if not in PATH
|
||||||
}),
|
}),
|
||||||
-- Kotlin formatting via ktfmt — runs as separate JVM, no OOM risk.
|
|
||||||
-- Custom formatter (not in null-ls builtins for this version).
|
|
||||||
{
|
|
||||||
name = "ktfmt",
|
|
||||||
method = null_ls.methods.FORMATTING,
|
|
||||||
filetypes = { "kotlin" },
|
|
||||||
generator = null_ls.generator({
|
|
||||||
command = "java",
|
|
||||||
args = { "-jar", "/home/prabhat/.config/nvim/jars/ktfmt.jar", "-" },
|
|
||||||
to_stdin = true,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
-- YAML formatting via yamlfmt (Mason: yamlfmt)
|
-- YAML formatting via yamlfmt (Mason: yamlfmt)
|
||||||
formatting.yamlfmt,
|
formatting.yamlfmt,
|
||||||
-- XML formatting via xmllint (system package: libxml2-utils)
|
-- XML formatting via xmllint (system package: libxml2-utils)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
-- lua/user/test.lua
|
-- lua/user/test.lua
|
||||||
return function()
|
-- Returns vim-test plugin spec for lazy.nvim
|
||||||
-- Set up vim-test plugin
|
|
||||||
require("packer").use({
|
return {
|
||||||
|
{
|
||||||
"vim-test/vim-test",
|
"vim-test/vim-test",
|
||||||
config = function()
|
config = function()
|
||||||
vim.cmd([[
|
vim.cmd([[
|
||||||
|
|
@ -14,5 +15,5 @@ return function()
|
||||||
nmap <silent> t<C-g> :TestVisit<CR>
|
nmap <silent> t<C-g> :TestVisit<CR>
|
||||||
]])
|
]])
|
||||||
end,
|
end,
|
||||||
})
|
},
|
||||||
end
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ ts.setup({
|
||||||
"c",
|
"c",
|
||||||
"cpp",
|
"cpp",
|
||||||
"javascript",
|
"javascript",
|
||||||
"kotlin",
|
|
||||||
"go",
|
"go",
|
||||||
"dart",
|
"dart",
|
||||||
"typescript",
|
"typescript",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue