-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
341 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"neodev": { | ||
"library": { | ||
"enabled": true, | ||
"plugins": true | ||
} | ||
}, | ||
"neoconf": { | ||
"plugins": { | ||
"lua_ls": { | ||
"enabled": true | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
-- bootstrap lazy.nvim, LazyVim and your plugins | ||
require("config.lazy") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
-- Autocmds are automatically loaded on the VeryLazy event | ||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua | ||
-- Add any additional autocmds here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
-- Keymaps are automatically loaded on the VeryLazy event | ||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua | ||
-- Add any additional keymaps here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" | ||
if not vim.loop.fs_stat(lazypath) then | ||
-- bootstrap lazy.nvim | ||
-- stylua: ignore | ||
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) | ||
end | ||
vim.opt.rtp:prepend(vim.env.LAZY or lazypath) | ||
|
||
require("lazy").setup({ | ||
spec = { | ||
-- add LazyVim and import its plugins | ||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" }, | ||
-- import any extras modules here | ||
-- { import = "lazyvim.plugins.extras.lang.typescript" }, | ||
-- { import = "lazyvim.plugins.extras.lang.json" }, | ||
-- { import = "lazyvim.plugins.extras.ui.mini-animate" }, | ||
-- import/override with your plugins | ||
{ import = "plugins" }, | ||
}, | ||
defaults = { | ||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. | ||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. | ||
lazy = false, | ||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning, | ||
-- have outdated releases, which may break your Neovim install. | ||
version = false, -- always use the latest git commit | ||
-- version = "*", -- try installing the latest stable version for plugins that support semver | ||
}, | ||
install = { colorscheme = { "tokyonight", "habamax" } }, | ||
checker = { enabled = true }, -- automatically check for plugin updates | ||
performance = { | ||
rtp = { | ||
-- disable some rtp plugins | ||
disabled_plugins = { | ||
"gzip", | ||
-- "matchit", | ||
-- "matchparen", | ||
-- "netrwPlugin", | ||
"tarPlugin", | ||
"tohtml", | ||
"tutor", | ||
"zipPlugin", | ||
}, | ||
}, | ||
}, | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
-- Options are automatically loaded before lazy.nvim startup | ||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua | ||
-- Add any additional options here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,266 @@ | ||
-- since this is just an example spec, don't actually load anything here and return an empty spec | ||
-- stylua: ignore | ||
if true then return {} end | ||
|
||
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim | ||
-- | ||
-- In your plugin files, you can: | ||
-- * add extra plugins | ||
-- * disable/enabled LazyVim plugins | ||
-- * override the configuration of LazyVim plugins | ||
return { | ||
-- add gruvbox | ||
{ "ellisonleao/gruvbox.nvim" }, | ||
|
||
-- Configure LazyVim to load gruvbox | ||
{ | ||
"LazyVim/LazyVim", | ||
opts = { | ||
colorscheme = "gruvbox", | ||
}, | ||
}, | ||
|
||
-- change trouble config | ||
{ | ||
"folke/trouble.nvim", | ||
-- opts will be merged with the parent spec | ||
opts = { use_diagnostic_signs = true }, | ||
}, | ||
|
||
-- disable trouble | ||
{ "folke/trouble.nvim", enabled = false }, | ||
|
||
-- add symbols-outline | ||
{ | ||
"simrat39/symbols-outline.nvim", | ||
cmd = "SymbolsOutline", | ||
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } }, | ||
config = true, | ||
}, | ||
|
||
-- override nvim-cmp and add cmp-emoji | ||
{ | ||
"hrsh7th/nvim-cmp", | ||
dependencies = { "hrsh7th/cmp-emoji" }, | ||
---@param opts cmp.ConfigSchema | ||
opts = function(_, opts) | ||
local cmp = require("cmp") | ||
opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "emoji" } })) | ||
end, | ||
}, | ||
|
||
-- change some telescope options and a keymap to browse plugin files | ||
{ | ||
"nvim-telescope/telescope.nvim", | ||
keys = { | ||
-- add a keymap to browse plugin files | ||
-- stylua: ignore | ||
{ | ||
"<leader>fp", | ||
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, | ||
desc = "Find Plugin File", | ||
}, | ||
}, | ||
-- change some options | ||
opts = { | ||
defaults = { | ||
layout_strategy = "horizontal", | ||
layout_config = { prompt_position = "top" }, | ||
sorting_strategy = "ascending", | ||
winblend = 0, | ||
}, | ||
}, | ||
}, | ||
|
||
-- add telescope-fzf-native | ||
{ | ||
"telescope.nvim", | ||
dependencies = { | ||
"nvim-telescope/telescope-fzf-native.nvim", | ||
build = "make", | ||
config = function() | ||
require("telescope").load_extension("fzf") | ||
end, | ||
}, | ||
}, | ||
|
||
-- add pyright to lspconfig | ||
{ | ||
"neovim/nvim-lspconfig", | ||
---@class PluginLspOpts | ||
opts = { | ||
---@type lspconfig.options | ||
servers = { | ||
-- pyright will be automatically installed with mason and loaded with lspconfig | ||
pyright = {}, | ||
}, | ||
}, | ||
}, | ||
|
||
-- add tsserver and setup with typescript.nvim instead of lspconfig | ||
{ | ||
"neovim/nvim-lspconfig", | ||
dependencies = { | ||
"jose-elias-alvarez/typescript.nvim", | ||
init = function() | ||
require("lazyvim.util").on_attach(function(_, buffer) | ||
-- stylua: ignore | ||
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) | ||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) | ||
end) | ||
end, | ||
}, | ||
---@class PluginLspOpts | ||
opts = { | ||
---@type lspconfig.options | ||
servers = { | ||
-- tsserver will be automatically installed with mason and loaded with lspconfig | ||
tsserver = {}, | ||
}, | ||
-- you can do any additional lsp server setup here | ||
-- return true if you don't want this server to be setup with lspconfig | ||
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?> | ||
setup = { | ||
-- example to setup with typescript.nvim | ||
tsserver = function(_, opts) | ||
require("typescript").setup({ server = opts }) | ||
return true | ||
end, | ||
-- Specify * to use this function as a fallback for any server | ||
-- ["*"] = function(server, opts) end, | ||
}, | ||
}, | ||
}, | ||
|
||
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig, | ||
-- treesitter, mason and typescript.nvim. So instead of the above, you can use: | ||
{ import = "lazyvim.plugins.extras.lang.typescript" }, | ||
|
||
-- add more treesitter parsers | ||
{ | ||
"nvim-treesitter/nvim-treesitter", | ||
opts = { | ||
ensure_installed = { | ||
"bash", | ||
"html", | ||
"javascript", | ||
"json", | ||
"lua", | ||
"markdown", | ||
"markdown_inline", | ||
"python", | ||
"query", | ||
"regex", | ||
"tsx", | ||
"typescript", | ||
"vim", | ||
"yaml", | ||
}, | ||
}, | ||
}, | ||
|
||
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above | ||
-- would overwrite `ensure_installed` with the new value. | ||
-- If you'd rather extend the default config, use the code below instead: | ||
{ | ||
"nvim-treesitter/nvim-treesitter", | ||
opts = function(_, opts) | ||
-- add tsx and treesitter | ||
vim.list_extend(opts.ensure_installed, { | ||
"tsx", | ||
"typescript", | ||
}) | ||
end, | ||
}, | ||
|
||
-- the opts function can also be used to change the default opts: | ||
{ | ||
"nvim-lualine/lualine.nvim", | ||
event = "VeryLazy", | ||
opts = function(_, opts) | ||
table.insert(opts.sections.lualine_x, "😄") | ||
end, | ||
}, | ||
|
||
-- or you can return new options to override all the defaults | ||
{ | ||
"nvim-lualine/lualine.nvim", | ||
event = "VeryLazy", | ||
opts = function() | ||
return { | ||
--[[add your custom lualine config here]] | ||
} | ||
end, | ||
}, | ||
|
||
-- use mini.starter instead of alpha | ||
{ import = "lazyvim.plugins.extras.ui.mini-starter" }, | ||
|
||
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc | ||
{ import = "lazyvim.plugins.extras.lang.json" }, | ||
|
||
-- add any tools you want to have installed below | ||
{ | ||
"williamboman/mason.nvim", | ||
opts = { | ||
ensure_installed = { | ||
"stylua", | ||
"shellcheck", | ||
"shfmt", | ||
"flake8", | ||
}, | ||
}, | ||
}, | ||
|
||
-- Use <tab> for completion and snippets (supertab) | ||
-- first: disable default <tab> and <s-tab> behavior in LuaSnip | ||
{ | ||
"L3MON4D3/LuaSnip", | ||
keys = function() | ||
return {} | ||
end, | ||
}, | ||
-- then: setup supertab in cmp | ||
{ | ||
"hrsh7th/nvim-cmp", | ||
dependencies = { | ||
"hrsh7th/cmp-emoji", | ||
}, | ||
---@param opts cmp.ConfigSchema | ||
opts = function(_, opts) | ||
local has_words_before = function() | ||
unpack = unpack or table.unpack | ||
local line, col = unpack(vim.api.nvim_win_get_cursor(0)) | ||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil | ||
end | ||
|
||
local luasnip = require("luasnip") | ||
local cmp = require("cmp") | ||
|
||
opts.mapping = vim.tbl_extend("force", opts.mapping, { | ||
["<Tab>"] = cmp.mapping(function(fallback) | ||
if cmp.visible() then | ||
cmp.select_next_item() | ||
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() | ||
-- this way you will only jump inside the snippet region | ||
elseif luasnip.expand_or_jumpable() then | ||
luasnip.expand_or_jump() | ||
elseif has_words_before() then | ||
cmp.complete() | ||
else | ||
fallback() | ||
end | ||
end, { "i", "s" }), | ||
["<S-Tab>"] = cmp.mapping(function(fallback) | ||
if cmp.visible() then | ||
cmp.select_prev_item() | ||
elseif luasnip.jumpable(-1) then | ||
luasnip.jump(-1) | ||
else | ||
fallback() | ||
end | ||
end, { "i", "s" }), | ||
}) | ||
end, | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
indent_type = "Spaces" | ||
indent_width = 2 | ||
column_width = 120 |