From e53a643e3da266ced56db9174b73778c09fb33ca Mon Sep 17 00:00:00 2001 From: Asep Komarudin <68836805+pojokcodeid@users.noreply.github.com> Date: Sun, 15 Jan 2023 00:17:41 +0700 Subject: [PATCH] Add files via upload --- img/Spring_boot_code.jpeg | Bin 0 -> 71359 bytes img/home.png | Bin 0 -> 22260 bytes img/laravel.jpeg | Bin 0 -> 136205 bytes img/terminal_spring_boot.jpeg | Bin 0 -> 144233 bytes init.lua | 16 + lazy-lock.json | 59 + lua/config/lazy.lua | 37 + lua/plugins/coding.lua | 123 ++ lua/plugins/init.lua | 278 ++++ lua/plugins/treesitter.lua | 62 + lua/user/alpha.lua | 45 + lua/user/autocommands.lua | 38 + lua/user/autopairs.lua | 33 + lua/user/autotag.lua | 10 + lua/user/breadcrumb.lua | 50 + lua/user/bufferline.lua | 211 +++ lua/user/cmp.lua | 141 ++ lua/user/coderunner.lua | 24 + lua/user/colorizer.lua | 11 + lua/user/colorscheme.lua | 8 + lua/user/comment.lua | 32 + lua/user/dressing.lua | 15 + lua/user/format_onsave.lua | 22 + lua/user/functions.lua | 33 + lua/user/gitsigns.lua | 48 + lua/user/icons.lua | 154 +++ lua/user/impatient.lua | 6 + lua/user/indentline.lua | 70 + lua/user/keymaps.lua | 96 ++ lua/user/lsp/config.lua | 25 + lua/user/lsp/handlers.lua | 106 ++ lua/user/lsp/init.lua | 9 + lua/user/lsp/mason.lua | 56 + lua/user/lsp/null-ls.lua | 44 + lua/user/lsp/settings/jsonls.lua | 197 +++ lua/user/lsp/settings/pyright.lua | 9 + lua/user/lsp/settings/sumneko_lua.lua | 16 + lua/user/lualine.lua | 163 +++ lua/user/mason-null-ls.lua | 6 + lua/user/neoscroll.lua | 5 + lua/user/nvim-tree.lua | 87 ++ lua/user/nvimscroll.lua | 9 + lua/user/options.lua | 55 + lua/user/plugins.lua | 396 ++++++ lua/user/project.lua | 48 + lua/user/smartspit.lua | 18 + lua/user/snip/init.lua | 49 + lua/user/telescope.lua | 96 ++ lua/user/toggleterm.lua | 70 + lua/user/tokyonight.lua | 40 + lua/user/webdevicons.lua | 1764 +++++++++++++++++++++++++ lua/user/whichkey.lua | 227 ++++ lua/user/winbar.lua | 151 +++ lua/user/yanky.lua | 17 + 54 files changed, 5285 insertions(+) create mode 100644 img/Spring_boot_code.jpeg create mode 100644 img/home.png create mode 100644 img/laravel.jpeg create mode 100644 img/terminal_spring_boot.jpeg create mode 100644 init.lua create mode 100644 lazy-lock.json create mode 100644 lua/config/lazy.lua create mode 100644 lua/plugins/coding.lua create mode 100644 lua/plugins/init.lua create mode 100644 lua/plugins/treesitter.lua create mode 100644 lua/user/alpha.lua create mode 100644 lua/user/autocommands.lua create mode 100644 lua/user/autopairs.lua create mode 100644 lua/user/autotag.lua create mode 100644 lua/user/breadcrumb.lua create mode 100644 lua/user/bufferline.lua create mode 100644 lua/user/cmp.lua create mode 100644 lua/user/coderunner.lua create mode 100644 lua/user/colorizer.lua create mode 100644 lua/user/colorscheme.lua create mode 100644 lua/user/comment.lua create mode 100644 lua/user/dressing.lua create mode 100644 lua/user/format_onsave.lua create mode 100644 lua/user/functions.lua create mode 100644 lua/user/gitsigns.lua create mode 100644 lua/user/icons.lua create mode 100644 lua/user/impatient.lua create mode 100644 lua/user/indentline.lua create mode 100644 lua/user/keymaps.lua create mode 100644 lua/user/lsp/config.lua create mode 100644 lua/user/lsp/handlers.lua create mode 100644 lua/user/lsp/init.lua create mode 100644 lua/user/lsp/mason.lua create mode 100644 lua/user/lsp/null-ls.lua create mode 100644 lua/user/lsp/settings/jsonls.lua create mode 100644 lua/user/lsp/settings/pyright.lua create mode 100644 lua/user/lsp/settings/sumneko_lua.lua create mode 100644 lua/user/lualine.lua create mode 100644 lua/user/mason-null-ls.lua create mode 100644 lua/user/neoscroll.lua create mode 100644 lua/user/nvim-tree.lua create mode 100644 lua/user/nvimscroll.lua create mode 100644 lua/user/options.lua create mode 100644 lua/user/plugins.lua create mode 100644 lua/user/project.lua create mode 100644 lua/user/smartspit.lua create mode 100644 lua/user/snip/init.lua create mode 100644 lua/user/telescope.lua create mode 100644 lua/user/toggleterm.lua create mode 100644 lua/user/tokyonight.lua create mode 100644 lua/user/webdevicons.lua create mode 100644 lua/user/whichkey.lua create mode 100644 lua/user/winbar.lua create mode 100644 lua/user/yanky.lua diff --git a/img/Spring_boot_code.jpeg b/img/Spring_boot_code.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b6372b71d71ce6d16926e6827e726615705aa023 GIT binary patch literal 71359 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%0DdaZ+{; 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 bA9d(JtMJu-c>c=(y03nTul&ZtAN&6gM>&y7 literal 0 HcmV?d00001 diff --git a/img/home.png b/img/home.png new file mode 100644 index 0000000000000000000000000000000000000000..eb4afb3c93c23b799b30bfc388b10b0163ca3553 GIT binary patch literal 22260 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 literal 0 HcmV?d00001 diff --git a/img/laravel.jpeg b/img/laravel.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..89660972e1fb56651841f3f3f7d23f1e4c3465f4 GIT binary patch literal 136205 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 z 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 literal 0 HcmV?d00001 diff --git a/img/terminal_spring_boot.jpeg b/img/terminal_spring_boot.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7a64760833301902db6c9e49b1b33f60dd6dfb0e GIT binary patch literal 144233 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
o3F%_X5~?s!gxd3U*Uv|` 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
JTe)~a6t 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 CD*f~T literal 0 HcmV?d00001 diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..adc20a3 --- /dev/null +++ b/init.lua @@ -0,0 +1,16 @@ +local onsave = true +require("user.options") +require("config.lazy") +require("user.keymaps") +require("user.autocommands") +require("user.colorscheme") +require("user.snip") +if onsave then + require("user.format_onsave") +end + +-- dipindah ke plugins +-- require("user.lualine") +-- require("user.bufferline") +-- require("user.cmp") +-- require("user.lsp") diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..48a70bf --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,59 @@ +{ + "Comment.nvim": { "branch": "master", "commit": "97a188a98b5a3a6f9b1b850799ac078faa17ab67" }, + "LuaSnip": { "branch": "master", "commit": "563827f00bb4fe43269e3be653deabc0005f1302" }, + "alpha-nvim": { "branch": "main", "commit": "0bb6fc0646bcd1cdb4639737a1cee8d6e08bcc31" }, + "bufdelete.nvim": { "branch": "master", "commit": "f79e9d186b42fba5f1b1362006e7c70240db97a4" }, + "bufferline.nvim": { "branch": "main", "commit": "83bf4dc7bff642e145c8b4547aa596803a8b4dc4" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "59224771f91b86d1de12570b4070fe4ad7cd1eeb" }, + "cmp-nvim-lua": { "branch": "main", "commit": "d276254e7198ab7d00f117e88e223b4bd8c02d21" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, + "code_runner.nvim": { "branch": "main", "commit": "00d3b82cc4ff0a1e0eabd09bbf125d95490d216f" }, + "dressing.nvim": { "branch": "master", "commit": "4436d6f41e2f6b8ada57588acd1a9f8b3d21453c" }, + "friendly-snippets": { "branch": "main", "commit": "7ab483b355613ef4f74189c7789278d765724d12" }, + "gitsigns.nvim": { "branch": "main", "commit": "2c6f96dda47e55fa07052ce2e2141e8367cbaaf2" }, + "impatient.nvim": { "branch": "main", "commit": "b842e16ecc1a700f62adb9802f8355b99b52a5a6" }, + "indent-blankline.nvim": { "branch": "master", "commit": "db7cbcb40cc00fc5d6074d7569fb37197705e7f6" }, + "lazy.nvim": { "branch": "main", "commit": "0d0d5870a3265f1c92a89dccef4a592c44e70179" }, + "live-server": { "branch": "main", "commit": "ecd7c1418823b65dd2bca710587c80afe42c973e" }, + "lualine.nvim": { "branch": "master", "commit": "a52f078026b27694d2290e34efa61a6e4a690621" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "43c7f402cb9822b61b5dc05bf0b385928df256a6" }, + "mason-null-ls.nvim": { "branch": "main", "commit": "07335008824788725bfa2095e18ddbb527002d63" }, + "mason.nvim": { "branch": "main", "commit": "c2002d7a6b5a72ba02388548cfaf420b864fbc12" }, + "mini.ai": { "branch": "main", "commit": "14a1382372195573c6c7f494ab8bb298b03e6f04" }, + "mini.comment": { "branch": "main", "commit": "e5294cc3e75bafb2369f235d31a98b01a9cc67ad" }, + "mini.pairs": { "branch": "main", "commit": "fec9aba50912d8c3d92d07d6a77952de84f8d7ad" }, + "mini.surround": { "branch": "main", "commit": "df41f1c009afbb3eef39d979977fb14404576f9b" }, + "neoscroll.nvim": { "branch": "master", "commit": "54c5c419f6ee2b35557b3a6a7d631724234ba97a" }, + "null-ls.nvim": { "branch": "main", "commit": "c0c19f32b614b3921e17886c541c13a72748d450" }, + "nvim-autopairs": { "branch": "master", "commit": "4fc96c8f3df89b6d23e5092d31c866c53a346347" }, + "nvim-cmp": { "branch": "main", "commit": "983453e32cb35533a119725883c04436d16c0120" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "760e27df4dd966607e8fb7fd8b6b93e3c7d2e193" }, + "nvim-lsp-installer": { "branch": "main", "commit": "17e0bfa5f2c8854d1636fcd036dc8284db136baa" }, + "nvim-lspconfig": { "branch": "master", "commit": "f11fdff7e8b5b415e5ef1837bdcdd37ea6764dda" }, + "nvim-navic": { "branch": "master", "commit": "7a2b823152fe4de65ee7925b0e32d26ed73bc57c" }, + "nvim-notify": { "branch": "master", "commit": "b005821516f1f37801a73067afd1cef2dbc4dfe8" }, + "nvim-scrollview": { "branch": "main", "commit": "ba6c48bf7919dd48a371e7b9c683b8858053e885" }, + "nvim-tree.lua": { "branch": "master", "commit": "7282f7de8aedf861fe0162a559fc2b214383c51c" }, + "nvim-treesitter": { "branch": "master", "commit": "69388e84c34d40c3d5c7d2f310db13276f2179e1" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "a8c86f48c1030acee22b9e071e3c531de77bf253" }, + "nvim-ts-autotag": { "branch": "main", "commit": "fdefe46c6807441460f11f11a167a2baf8e4534b" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "4a42b30376c1bd625ab5016c2079631d531d797a" }, + "nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" }, + "nvim-web-devicons": { "branch": "master", "commit": "563f3635c2d8a7be7933b9e547f7c178ba0d4352" }, + "plenary.nvim": { "branch": "master", "commit": "4b7e52044bbb84242158d977a50c4cbcd85070c7" }, + "project.nvim": { "branch": "main", "commit": "628de7e433dd503e782831fe150bb750e56e55d6" }, + "smart-splits.nvim": { "branch": "master", "commit": "fdd158ce7554dc830fb86e0fe952cd9476cdf726" }, + "telescope.nvim": { "branch": "master", "commit": "76ea9a898d3307244dce3573392dcf2cc38f340f" }, + "todo-comments.nvim": { "branch": "main", "commit": "077c59586d9d0726b0696dc5680eb863f4e04bc5" }, + "toggleterm.nvim": { "branch": "main", "commit": "2a787c426ef00cb3488c11b14f5dcf892bbd0bda" }, + "tokyonight.nvim": { "branch": "main", "commit": "def91651c41f6d1d43ebcb50763324d35331baee" }, + "vim-bbye": { "branch": "master", "commit": "25ef93ac5a87526111f43e5110675032dbcacf56" }, + "vim-illuminate": { "branch": "master", "commit": "a2e8476af3f3e993bb0d6477438aad3096512e42" }, + "vim-startuptime": { "branch": "master", "commit": "5f52ed26e0296a3e1d1453935f417e5808eefab8" }, + "vim-visual-multi": { "branch": "master", "commit": "1c9207b28c8898ab01b54e6d6b61b0b820a814bc" }, + "which-key.nvim": { "branch": "main", "commit": "16ed12a8493628c377606da2ebac50d80736ed37" }, + "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" }, + "yanky.nvim": { "branch": "main", "commit": "57380fe70758dae6aeac5a304a0b28b3cff3cb5c" } +} \ No newline at end of file diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua new file mode 100644 index 0000000..75ced55 --- /dev/null +++ b/lua/config/lazy.lua @@ -0,0 +1,37 @@ +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) +vim.g.mapleader=' ' +vim.g.maplocalleader=' ' +require("lazy").setup({ + spec = { + { + import = "plugins", + }, + }, + defaults = { + lazy = true, -- every plugin is lazy-loaded by default + version = "*", -- try installing the latest stable version for plugins that support semver + }, + checker = { enabled = true }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + "matchit", + "matchparen", + "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + "lazyredraw", + }, + }, + }, +}) diff --git a/lua/plugins/coding.lua b/lua/plugins/coding.lua new file mode 100644 index 0000000..39b6a93 --- /dev/null +++ b/lua/plugins/coding.lua @@ -0,0 +1,123 @@ +return { + -- snippets + { + "L3MON4D3/LuaSnip", + dependencies = { + "rafamadriz/friendly-snippets", + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + end, + }, + opts = { + history = true, + delete_check_events = "TextChanged", + }, + -- stylua: ignore + keys = { + { + "", + function() + return require("luasnip").jumpable(1) and "luasnip-jump-next" or "" + end, + expr = true, silent = true, mode = "i", + }, + { "", function() require("luasnip").jump(1) end, mode = "s" }, + { "", function() require("luasnip").jump(-1) end, mode = { "i", "s" } }, + }, + }, + + -- auto completion + { + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "saadparwaiz1/cmp_luasnip", + }, + }, + + -- auto pairs + { + "echasnovski/mini.pairs", + event = "VeryLazy", + config = function(_, opts) + require("mini.pairs").setup(opts) + end, + }, + + -- surround + { + "echasnovski/mini.surround", + keys = { "gz" }, + opts = { + mappings = { + add = "gza", -- Add surrounding in Normal and Visual modes + delete = "gzd", -- Delete surrounding + find = "gzf", -- Find surrounding (to the right) + find_left = "gzF", -- Find surrounding (to the left) + highlight = "gzh", -- Highlight surrounding + replace = "gzr", -- Replace surrounding + update_n_lines = "gzn", -- Update `n_lines` + }, + }, + config = function(_, opts) + -- use gz mappings instead of s to prevent conflict with leap + require("mini.surround").setup(opts) + end, + }, + + -- comments + { "JoosepAlviste/nvim-ts-context-commentstring" }, + { + "echasnovski/mini.comment", + event = "VeryLazy", + opts = { + hooks = { + pre = function() + require("ts_context_commentstring.internal").update_commentstring({}) + end, + }, + }, + config = function(_, opts) + require("mini.comment").setup(opts) + end, + }, + + -- better text-objects + { + "echasnovski/mini.ai", + keys = { + { "a", mode = { "x", "o" } }, + { "i", mode = { "x", "o" } }, + }, + dependencies = { + { + "nvim-treesitter/nvim-treesitter-textobjects", + init = function() + -- no need to load the plugin, since we only need its queries + require("lazy.core.loader").disable_rtp_plugin("nvim-treesitter-textobjects") + end, + }, + }, + opts = function() + local ai = require("mini.ai") + return { + n_lines = 500, + custom_textobjects = { + o = ai.gen_spec.treesitter({ + a = { "@block.outer", "@conditional.outer", "@loop.outer" }, + i = { "@block.inner", "@conditional.inner", "@loop.inner" }, + }, {}), + f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }, {}), + c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }, {}), + }, + } + end, + config = function(_, opts) + local ai = require("mini.ai") + ai.setup(opts) + end, + }, + } \ No newline at end of file diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua new file mode 100644 index 0000000..3f10500 --- /dev/null +++ b/lua/plugins/init.lua @@ -0,0 +1,278 @@ +return { + -- the colorscheme should be available when starting Neovim + { + "nvim-lua/plenary.nvim", + commit = "4b7e52044bbb84242158d977a50c4cbcd85070c7", + event = "BufWinEnter", + module = "plenary", + }, + { + "folke/tokyonight.nvim", + lazy = false, -- make sure we load this during startup if it is your main colorscheme + priority = 1000, -- make sure to load this before all the other start plugins + }, + { + "goolord/alpha-nvim", + commit = "0bb6fc0646bcd1cdb4639737a1cee8d6e08bcc31", + module = "alpha", + event = "BufWinEnter", + config = function() + require("user.alpha") + end, + }, + { + "nvim-lualine/lualine.nvim", + commit = "a52f078026b27694d2290e34efa61a6e4a690621", + require = { "kyazdani42/nvim-web-devicons", opt = true }, + event = "BufWinEnter", + opts=function() + require("user.lualine") + end, + }, + {"rafamadriz/friendly-snippets"}, + {"hrsh7th/nvim-cmp", + dependencies ="rafamadriz/friendly-snippets", + opts=function() + require("user.cmp") + end, + }, + { + "windwp/nvim-autopairs", + commit = "4fc96c8f3df89b6d23e5092d31c866c53a346347", + dependencies = "hrsh7th/nvim-cmp", + event="VeryLazy", + init = function() + require("user.autopairs") + end, + }, + { + "numToStr/Comment.nvim", + commit = "97a188a98b5a3a6f9b1b850799ac078faa17ab67", + event = "BufReadPost", + init = function() + require("user.comment") + end, + }, + -- include treesitter + require("plugins.treesitter") + ,{ + "kyazdani42/nvim-web-devicons", + commit = "563f3635c2d8a7be7933b9e547f7c178ba0d4352", + init = function() + require("user.webdevicons") + end, + }, + { + "kyazdani42/nvim-tree.lua", + commit = "7282f7de8aedf861fe0162a559fc2b214383c51c", + cmd = "NvimTreeToggle", + dependencies = "kyazdani42/nvim-web-devicons", + init = function() + require("user.nvim-tree") + end, + }, + { + "akinsho/bufferline.nvim", + commit = "83bf4dc7bff642e145c8b4547aa596803a8b4dc4", + dependencies = {"kyazdani42/nvim-web-devicons","famiu/bufdelete.nvim"}, + event = "VeryLazy", + config=function() + require("user.bufferline") + end, + }, + { "moll/vim-bbye", commit = "25ef93ac5a87526111f43e5110675032dbcacf56" }, + { + "akinsho/toggleterm.nvim", + commit = "2a787c426ef00cb3488c11b14f5dcf892bbd0bda", + cmd = "Toggleterm", + event = "BufWinEnter", + init = function() + require("user.toggleterm") + end, + }, + { "ahmedkhalf/project.nvim", commit = "628de7e433dd503e782831fe150bb750e56e55d6" }, + { + "lewis6991/impatient.nvim", + commit = "b842e16ecc1a700f62adb9802f8355b99b52a5a6", + init = function() + require("user.impatient") + end, + }, + { + "lukas-reineke/indent-blankline.nvim", + commit = "db7cbcb40cc00fc5d6074d7569fb37197705e7f6", + event = "BufRead", + init = function() + require("user.indentline") + end, + }, + { + "folke/which-key.nvim", + event = "BufWinEnter", + init = function() + require("user.whichkey") + end, + }, + -- start programming + { "hrsh7th/cmp-buffer", commit = "3022dbc9166796b644a841a02de8dd1cc1d311fa", dependencies = "hrsh7th/nvim-cmp"}, + { "hrsh7th/cmp-nvim-lua", commit = "d276254e7198ab7d00f117e88e223b4bd8c02d21", dependencies = "hrsh7th/nvim-cmp" }, + { + "neovim/nvim-lspconfig", + commit = "f11fdff7e8b5b415e5ef1837bdcdd37ea6764dda", + event = "BufWinEnter", + init = function() + require("user.lsp") + end, + }, + { + "williamboman/mason.nvim", + commit = "c2002d7a6b5a72ba02388548cfaf420b864fbc12", + cmd = { + "Mason", + "MasonInstall", + "MasonUninstall", + "MasonUninstallAll", + "MasonLog", + }, + dependencies={"williamboman/mason-lspconfig.nvim"}, + init = function() + vim.tbl_map(function(plugin) + pcall(require, plugin) + end, { "lspconfig", "null-ls" }) + end, + }, + { "jose-elias-alvarez/null-ls.nvim", commit = "c0c19f32b614b3921e17886c541c13a72748d450" }, + { "RRethy/vim-illuminate", commit = "a2e8476af3f3e993bb0d6477438aad3096512e42" }, + -- include for coding + require "plugins.coding" + + -- extra plugins + ,{ + "nvim-telescope/telescope.nvim", + commit = "76ea9a898d3307244dce3573392dcf2cc38f340f", + dependencies = { { "nvim-lua/plenary.nvim" } }, + cmd = "Telescope", + init = function() + require("user.telescope") + end, + }, + { "manzeloth/live-server", cmd={"LiveServer"} }, + { "mg979/vim-visual-multi", event = "BufWinEnter" }, + { + "windwp/nvim-ts-autotag", + dependencies = "nvim-treesitter", + init=function() + require('nvim-ts-autotag').setup() + end, + }, + { + "CRAG666/code_runner.nvim", + dependencies = "nvim-lua/plenary.nvim", + cmd = { "RunCode", "RunFile", "RunProject", "RunClose" }, + config = function() + require("user.coderunner") + end, + }, + { + "NvChad/nvim-colorizer.lua", + event = "BufWinEnter", + opts = function() + require("user.colorizer") + end, + }, + { "williamboman/nvim-lsp-installer" }, + { + "SmiteshP/nvim-navic", + dependencies = "neovim/nvim-lspconfig", + event = "BufRead", + config = function() + require("user.breadcrumb") + require("user.winbar") + end, + }, + { + "rcarriga/nvim-notify", + event = "BufRead", + config = function() + vim.notify = require("notify") + end, + }, + { + "mrjones2014/smart-splits.nvim", + event = "BufWinEnter", + config = function() + require("user.smartspit") + end, + }, + { + "jayp0521/mason-null-ls.nvim", + dependencies = "jose-elias-alvarez/null-ls.nvim", + event = "BufRead", + opts = function() + require("user.mason-null-ls") + end, + }, + { + "stevearc/dressing.nvim", + event = "BufWinEnter", + config = function() + require("user.dressing") + end, + }, + { + "folke/todo-comments.nvim", + event = "BufRead", + config = function() + require("todo-comments").setup() + end, + }, + { + "karb94/neoscroll.nvim", + event = "BufRead", + config = function() + require("user.neoscroll") + end, + }, + { + "dstein64/nvim-scrollview", + event = "BufRead", + config = function() + require("user.nvimscroll") + end, + }, + { + "gelguy/wilder.nvim", + event = "BufWinEnter", + config = function() + local wilder = require("wilder") + wilder.setup({ modes = { ":", "/", "?" } }) + wilder.set_option( + "renderer", + wilder.popupmenu_renderer({ + highlighter = wilder.basic_highlighter(), + left = { " ", wilder.popupmenu_devicons() }, + right = { " ", wilder.popupmenu_scrollbar() }, + }) + ) + end, + }, + { + "gbprod/yanky.nvim", + event = "BufRead", + config = function() + require("user.yanky") + end, + }, + { "dstein64/vim-startuptime", cmd="StartupTime" }, + { "p00f/nvim-ts-rainbow", event = "BufWinEnter", dependencies = "nvim-treesitter/nvim-treesitter" }, + { + "lewis6991/gitsigns.nvim", + commit = "2c6f96dda47e55fa07052ce2e2141e8367cbaaf2", + disable = vim.fn.executable("git") == 0, + ft = "gitcommit", + event = "VeryLazy", + config = function() + require("user.gitsigns") + end, + } +} \ No newline at end of file diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..1a0f364 --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -0,0 +1,62 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + event = "BufReadPost", + ---@type TSConfig + opts = { + sync_install = false, + highlight = { enable = true }, + autopairs = { + enable = true, + }, + indent = { enable = true, disable = { "python", "css" } }, + autotag = { enable = true }, + incremental_selection = { enable = true }, + rainbow = { + enable = true, + disable = { "html" }, + extended_mode = false, + max_file_lines = nil, + }, + context_commentstring = { + enable = true, + enable_autocmd = false, + config = { + -- Languages that have a single comment style + typescript = "// %s", + css = "/* %s */", + scss = "/* %s */", + html = "", + svelte = "", + vue = "", + json = "", + }, + }, + ensure_installed = { + "bash", + "html", + "c", + "javascript", + "json", + "lua", + "python", + "typescript", + "tsx", + "css", + "rust", + "java", + "yaml", + "markdown", + "markdown_inline", + }, + }, + ---@param opts TSConfig + config = function(plugin, opts) + if plugin.ensure_installed then + require("lazyvim.util").deprecate("treesitter.ensure_installed", "treesitter.opts.ensure_installed") + end + require("nvim-treesitter.configs").setup(opts) + end, + }, + } \ No newline at end of file diff --git a/lua/user/alpha.lua b/lua/user/alpha.lua new file mode 100644 index 0000000..8484f5d --- /dev/null +++ b/lua/user/alpha.lua @@ -0,0 +1,45 @@ +local status_ok, alpha = pcall(require, "alpha") +if not status_ok then + return +end + +local dashboard = require("alpha.themes.dashboard") +dashboard.section.header.val = { + [[ _ _ _ ]], + [[ (_) | | | | ]], + [[ _ __ ___ _ ___ | | __ ___ ___ __| | ___ ]], + [[| '_ \ / _ \| |/ _ \| |/ / / __/ _ \ / _` |/ _ \]], + [[| |_) | (_) | | (_) | < | (_| (_) | (_| | __/]], + [[| .__/ \___/| |\___/|_|\_\ \___\___/ \__,_|\___|]], + [[| | _/ | ]], + [[|_| |__/ ]], +} +dashboard.section.buttons.val = { + dashboard.button("f", " Find file", ":Telescope find_files "), + dashboard.button("e", " New file", ":ene startinsert "), + dashboard.button("p", " Find project", ":Telescope projects "), + dashboard.button("r", " Recently used files", ":Telescope oldfiles "), + dashboard.button("t", " Find text", ":Telescope live_grep "), + dashboard.button("c", " Configuration", ":e $MYVIMRC "), + dashboard.button("q", " Quit Neovim", ":qa"), +} + +local function footer() + -- NOTE: requires the fortune-mod package to work + -- local handle = io.popen("fortune") + -- local fortune = handle:read("*a") + -- handle:close() + -- return fortune + return "Pojok Code" +end + +dashboard.section.footer.val = footer() + +dashboard.section.footer.opts.hl = "Type" +dashboard.section.header.opts.hl = "Include" +dashboard.section.buttons.opts.hl = "Keyword" + +dashboard.opts.opts.noautocmd = true +-- vim.cmd([[autocmd User AlphaReady echo 'ready']]) +alpha.setup(dashboard.opts) + diff --git a/lua/user/autocommands.lua b/lua/user/autocommands.lua new file mode 100644 index 0000000..0cda114 --- /dev/null +++ b/lua/user/autocommands.lua @@ -0,0 +1,38 @@ +-- autocmd BufWinEnter * :set formatoptions-=cro +vim.cmd([[ + augroup _general_settings + autocmd! + autocmd FileType qf,help,man,lspinfo nnoremap q :close + autocmd TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200}) + autocmd BufWinEnter * :set formatoptions=croql + autocmd FileType qf set nobuflisted + augroup end + + augroup _git + autocmd! + autocmd FileType gitcommit setlocal wrap + autocmd FileType gitcommit setlocal spell + augroup end + + augroup _markdown + autocmd! + autocmd FileType markdown setlocal wrap + autocmd FileType markdown setlocal spell + augroup end + + augroup _auto_resize + autocmd! + autocmd VimResized * tabdo wincmd = + augroup end + + augroup _alpha + autocmd! + autocmd User AlphaReady set showtabline=0 | autocmd BufUnload set showtabline=2 + augroup end +]]) + +-- Autoformat +-- augroup _lsp +-- autocmd! +-- autocmd BufWritePre * lua vim.lsp.buf.formatting() +-- augroup end diff --git a/lua/user/autopairs.lua b/lua/user/autopairs.lua new file mode 100644 index 0000000..d2966e6 --- /dev/null +++ b/lua/user/autopairs.lua @@ -0,0 +1,33 @@ +-- Setup nvim-cmp. +local status_ok, npairs = pcall(require, "nvim-autopairs") +if not status_ok then + return +end + +npairs.setup({ + check_ts = true, + ts_config = { + lua = { "string", "source" }, + javascript = { "string", "template_string" }, + java = false, + }, + disable_filetype = { "TelescopePrompt", "spectre_panel" }, + fast_wrap = { + map = "", + chars = { "{", "[", "(", '"', "'" }, + pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), + offset = 0, -- Offset from pattern match + end_key = "$", + keys = "qwertyuiopzxcvbnmasdfghjkl", + check_comma = true, + highlight = "PmenuSel", + highlight_grey = "LineNr", + }, +}) + +local cmp_autopairs = require("nvim-autopairs.completion.cmp") +local cmp_status_ok, cmp = pcall(require, "cmp") +if not cmp_status_ok then + return +end +cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } })) diff --git a/lua/user/autotag.lua b/lua/user/autotag.lua new file mode 100644 index 0000000..33a92af --- /dev/null +++ b/lua/user/autotag.lua @@ -0,0 +1,10 @@ +local status_ok, cfg = pcall(require, "nvim-treesitter.configs") +if not status_ok then + return +end + +cfg.setup({ + autotag = { + enable = true, + }, +}) diff --git a/lua/user/breadcrumb.lua b/lua/user/breadcrumb.lua new file mode 100644 index 0000000..2594a81 --- /dev/null +++ b/lua/user/breadcrumb.lua @@ -0,0 +1,50 @@ +local status_ok, navic = pcall(require, "nvim-navic") +if not status_ok then + return +end + +local ico = require("user.icons") +local icons = ico.kind + +navic.setup({ + icons = { + Array = icons.Array .. " ", + Boolean = icons.Boolean, + Class = icons.Class .. " ", + Color = icons.Color .. " ", + Constant = icons.Constant .. " ", + Constructor = icons.Constructor .. " ", + Enum = icons.Enum .. " ", + EnumMember = icons.EnumMember .. " ", + Event = icons.Event .. " ", + Field = icons.Field .. " ", + File = icons.File .. " ", + Folder = icons.Folder .. " ", + Function = icons.Function .. " ", + Interface = icons.Interface .. " ", + Key = icons.Key .. " ", + Keyword = icons.Keyword .. " ", + Method = icons.Method .. " ", + Module = icons.Module .. " ", + Namespace = icons.Namespace .. " ", + Null = icons.Null .. " ", + Number = icons.Number .. " ", + Object = icons.Object .. " ", + Operator = icons.Operator .. " ", + Package = icons.Package .. " ", + Property = icons.Property .. " ", + Reference = icons.Reference .. " ", + Snippet = icons.Snippet .. " ", + String = icons.String .. " ", + Struct = icons.Struct .. " ", + Text = icons.Text .. " ", + TypeParameter = icons.TypeParameter .. " ", + Unit = icons.Unit .. " ", + Value = icons.Value .. " ", + Variable = icons.Variable .. " ", + }, + highlight = true, + separator = " " .. ico.ui.ChevronRight .. " ", + depth_limit = 0, + depth_limit_indicator = "..", +}) diff --git a/lua/user/bufferline.lua b/lua/user/bufferline.lua new file mode 100644 index 0000000..9731a56 --- /dev/null +++ b/lua/user/bufferline.lua @@ -0,0 +1,211 @@ +local status_ok, bufferline = pcall(require, "bufferline") +if not status_ok then + return +end + +local icons = require("user.icons") +local use_icons = true + +local function diagnostics_indicator(num, _, diagnostics, _) + local result = {} + local symbols = { + error = icons.diagnostics.Error, + warning = icons.diagnostics.Warning, + info = icons.diagnostics.Information, + } + if not use_icons then + return "(" .. num .. ")" + end + for name, count in pairs(diagnostics) do + if symbols[name] and count > 0 then + table.insert(result, symbols[name] .. " " .. count) + end + end + result = table.concat(result, " ") + return #result > 0 and result or "" +end + +bufferline.setup({ + options = { + color_icons = true, + numbers = "none", -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string, + --close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions" + close_command = function(bufnum) + require('bufdelete').bufdelete(bufnum, true) + end, + --right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions" + right_mouse_command = function(bufnum) + require('bufdelete').bufdelete(bufnum, true) + end, + left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions" + middle_mouse_command = nil, -- can be a string | function, see "Mouse actions" + -- NOTE: this plugin is designed with this icon in mind, + -- and so changing this is NOT recommended, this is intended + -- as an escape hatch for people who cannot bear it for whatever reason + indicator_icon = nil, + indicator = { style = "icon", icon = "▎" }, + --buffer_close_icon = "", + buffer_close_icon = icons.ui.Close, + -- buffer_close_icon = '', + -- modified_icon = "●", + modified_icon = icons.ui.Circle, + -- close_icon = "", + close_icon = icons.ui.BoldClose, + -- close_icon = '', + --left_trunc_marker = "", + left_trunc_marker = icons.ui.ArrowCircleLeft, + --right_trunc_marker = "", + right_trunc_marker = icons.ui.ArrowCircleRight, + --- name_formatter can be used to change the buffer's label in the bufferline. + --- Please note some names can/will break the + --- bufferline so use this at your discretion knowing that it has + --- some limitations that will *NOT* be fixed. + -- name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr" + -- -- remove extension from markdown files for example + -- if buf.name:match('%.md') then + -- return vim.fn.fnamemodify(buf.name, ':t:r') + -- end + -- end, + max_name_length = 30, + max_prefix_length = 30, -- prefix used when a buffer is de-duplicated + tab_size = 21, + diagnostics = false, -- | "nvim_lsp" | "coc", + diagnostics_update_in_insert = false, + diagnostics_indicator = diagnostics_indicator, + -- diagnostics_indicator = function(count, level, diagnostics_dict, context) + -- return "("..count..")" + -- end, + -- NOTE: this will be called a lot so don't do any heavy processing here + -- custom_filter = function(buf_number) + -- -- filter out filetypes you don't want to see + -- if vim.bo[buf_number].filetype ~= "" then + -- return true + -- end + -- -- filter out by buffer name + -- if vim.fn.bufname(buf_number) ~= "" then + -- return true + -- end + -- -- filter out based on arbitrary rules + -- -- e.g. filter out vim wiki buffer from tabline in your work repo + -- if vim.fn.getcwd() == "" and vim.bo[buf_number].filetype ~= "wiki" then + -- return true + -- end + -- end, + offsets = { { + filetype = "NvimTree", + text = function() + return vim.fn.getcwd() + end, + highlight = "Directory", + text_align = "left", + padding = 1 } + }, + show_buffer_icons = true, + show_buffer_close_icons = true, + show_close_icon = true, + show_tab_indicators = true, + persist_buffer_sort = true, -- whether or not custom sorted buffers should persist + -- can also be a table containing 2 custom separators + -- [focused and unfocused]. eg: { '|', '|' } + separator_style = "thin", -- | "thick" | "thin" | { 'any', 'any' }, + enforce_regular_tabs = true, + always_show_bufferline = true, + -- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b) + -- -- add custom logic + -- return buffer_a.modified > buffer_b.modified + -- end + }, + highlights = { + fill = { + fg = { attribute = "fg", highlight = "#ff0000" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + background = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + + -- buffer_selected = { + -- fg = {attribute='fg',highlight='#ff0000'}, + -- bg = {attribute='bg',highlight='#0000ff'}, + -- gui = 'none' + -- }, + buffer_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + + close_button = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + close_button_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + -- close_button_selected = { + -- fg = {attribute='fg',highlight='TabLineSel'}, + -- bg ={attribute='bg',highlight='TabLineSel'} + -- }, + + tab_selected = { + fg = { attribute = "fg", highlight = "Normal" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + tab = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + tab_close = { + -- fg = {attribute='fg',highlight='LspDiagnosticsDefaultError'}, + fg = { attribute = "fg", highlight = "TabLineSel" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + + duplicate_selected = { + fg = { attribute = "fg", highlight = "TabLineSel" }, + bg = { attribute = "bg", highlight = "TabLineSel" }, + underline = true, + }, + duplicate_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + underline = true, + }, + duplicate = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + underline = true, + }, + + modified = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + modified_selected = { + fg = { attribute = "fg", highlight = "Normal" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + modified_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + + separator = { + fg = { attribute = "bg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + separator_selected = { + fg = { attribute = "bg", highlight = "Normal" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + -- separator_visible = { + -- fg = {attribute='bg',highlight='TabLine'}, + -- bg = {attribute='bg',highlight='TabLine'} + -- }, + indicator_selected = { + fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + }, +}) diff --git a/lua/user/cmp.lua b/lua/user/cmp.lua new file mode 100644 index 0000000..81c2734 --- /dev/null +++ b/lua/user/cmp.lua @@ -0,0 +1,141 @@ +local cmp_status_ok, cmp = pcall(require, "cmp") +if not cmp_status_ok then + return +end + +local snip_status_ok, luasnip = pcall(require, "luasnip") +if not snip_status_ok then + return +end + +require("luasnip/loaders/from_vscode").lazy_load() + +local check_backspace = function() + local col = vim.fn.col(".") - 1 + return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") +end + +--   פּ ﯟ   some other good icons +-- local kind_icons = { +-- Text = "", +-- Method = "m", +-- Function = "", +-- Constructor = "", +-- Field = "", +-- Variable = "", +-- Class = "", +-- Interface = "", +-- Module = "", +-- Property = "", +-- Unit = "", +-- Value = "", +-- Enum = "", +-- Keyword = "", +-- Snippet = "", +-- Color = "", +-- File = "", +-- Reference = "", +-- Folder = "", +-- EnumMember = "", +-- Constant = "", +-- Struct = "", +-- Event = "", +-- Operator = "", +-- TypeParameter = "", +-- } +-- find more here: https://www.nerdfonts.com/cheat-sheet +local new_kind_icon = require("user.icons") + +cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) -- For `luasnip` users. + end, + }, + mapping = { + [""] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }), + [""] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }), + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), + [""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), + [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), + [""] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. + [""] = cmp.mapping({ + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }), + -- Accept currently selected item. If none selected, `select` first item. + -- Set `select` to `false` to only confirm explicitly selected items. + [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expandable() then + luasnip.expand() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif check_backspace() then + fallback() + else + fallback() + end + end, { + "i", + "s", + }), + [""] = 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", + }), + }, + formatting = { + fields = { "kind", "abbr", "menu" }, + format = function(entry, vim_item) + -- Kind icons + -- vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) + vim_item.kind = string.format("%s", new_kind_icon["kind"][vim_item.kind]) + -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind + vim_item.menu = ({ + -- nvim_lsp = "[LSP]", + -- luasnip = "[Snippet]", + -- buffer = "[Buffer]", + -- path = "[Path]", + nvim_lsp = "(LSP)", + luasnip = "(Snippet)", + buffer = "(Buffer)", + path = "(Path)", + })[entry.source.name] + return vim_item + end, + }, + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "path" }, + }, + confirm_opts = { + behavior = cmp.ConfirmBehavior.Replace, + select = false, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + -- documentation = { + -- border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, + -- }, + }, + experimental = { + ghost_text = false, + native_menu = false, + }, +}) diff --git a/lua/user/coderunner.lua b/lua/user/coderunner.lua new file mode 100644 index 0000000..3813a65 --- /dev/null +++ b/lua/user/coderunner.lua @@ -0,0 +1,24 @@ +local status_ok, code_runner = pcall(require, "code_runner") +if not status_ok then + return +end +code_runner.setup({ + -- put here the commands by filetype + filetype = { + java = "cd $dir && javac $fileName && java $fileNameWithoutExt", + python = "python3 -u", + typescript = "deno run", + javascript = "node $dir/$fileName", + rust = "cd $dir && rustc $fileName && $dir/$fileNameWithoutExt", + -- cpp="gcc $fileName -lstdc++ -o $fileNameWithoutExt && $fileNameWithoutExt" + cpp = "g++ $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt", + scss = "sass $dir/$fileName $dir/$fileNameWithoutExt.css", + }, + mode = "term", + focus = true, + startinsert = true, + term = { + position = "vert", + size = 50, + }, +}) diff --git a/lua/user/colorizer.lua b/lua/user/colorizer.lua new file mode 100644 index 0000000..318656a --- /dev/null +++ b/lua/user/colorizer.lua @@ -0,0 +1,11 @@ +local status_ok, colorizer_cfg = pcall(require, "colorizer") +if not status_ok then + return +end +colorizer_cfg.setup({ + filetypes = { + "*", -- Highlight all files, but customize some others. + css = { rgb_fn = true }, -- Enable parsing rgb(...) functions in css. + html = { names = false }, -- Disable parsing "names" like Blue or Gray + }, +}) diff --git a/lua/user/colorscheme.lua b/lua/user/colorscheme.lua new file mode 100644 index 0000000..caf9dee --- /dev/null +++ b/lua/user/colorscheme.lua @@ -0,0 +1,8 @@ +local colorscheme = "tokyonight-night" +-- local colorscheme = "nord" +-- local colorscheme = "lunar" + +local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme) +if not status_ok then + return +end diff --git a/lua/user/comment.lua b/lua/user/comment.lua new file mode 100644 index 0000000..5dd682f --- /dev/null +++ b/lua/user/comment.lua @@ -0,0 +1,32 @@ +local status_ok, comment = pcall(require, "Comment") +if not status_ok then + return +end + +comment.setup({ + pre_hook = function(ctx) + local U = require("Comment.utils") + + local status_utils_ok, utils = pcall(require, "ts_context_commentstring.utils") + if not status_utils_ok then + return + end + + local location = nil + if ctx.ctype == U.ctype.block then + location = utils.get_cursor_location() + elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then + location = utils.get_visual_start_location() + end + + local status_internals_ok, internals = pcall(require, "ts_context_commentstring.internals") + if not status_internals_ok then + return + end + + return internals.calculate_commentstring({ + key = ctx.ctype == U.ctype.line and "__default" or "__multiline", + location = location, + }) + end, +}) diff --git a/lua/user/dressing.lua b/lua/user/dressing.lua new file mode 100644 index 0000000..e0a7ae6 --- /dev/null +++ b/lua/user/dressing.lua @@ -0,0 +1,15 @@ +local status_ok, dressing = pcall(require, "dressing") +if not status_ok then + return +end + +dressing.setup({ + input = { + default_prompt = "➤ ", + win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" }, + }, + select = { + backend = { "telescope", "builtin" }, + builtin = { win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" } }, + }, +}) diff --git a/lua/user/format_onsave.lua b/lua/user/format_onsave.lua new file mode 100644 index 0000000..5a7c59e --- /dev/null +++ b/lua/user/format_onsave.lua @@ -0,0 +1,22 @@ +function format_filter(client) + local filetype = vim.bo.filetype + local n = require "null-ls" + local s = require "null-ls.sources" + local method = n.methods.FORMATTING + local available_formatters = s.get_available(filetype, method) + + if #available_formatters > 0 then + return client.name == "null-ls" + elseif client.supports_method "textDocument/formatting" then + return true + else + return false + end +end +vim.cmd [[ +augroup _lsp + autocmd! + " autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms =200, filter=format_filter} + autocmd BufWritePre * lua vim.lsp.buf.format{filter=format_filter} + augroup end +]] diff --git a/lua/user/functions.lua b/lua/user/functions.lua new file mode 100644 index 0000000..d68f5eb --- /dev/null +++ b/lua/user/functions.lua @@ -0,0 +1,33 @@ +local M = {} + +function M.smart_quit() + local bufnr = vim.api.nvim_get_current_buf() + local buf_windows = vim.call("win_findbuf", bufnr) + local modified = vim.api.nvim_buf_get_option(bufnr, "modified") + if modified and #buf_windows == 1 then + vim.ui.input({ + prompt = "You have unsaved changes. Quit anyway? (y/n) ", + }, function(input) + if input == "y" then + vim.cmd("q!") + end + end) + else + vim.cmd("q!") + end +end + +function M.isempty(s) + return s == nil or s == "" +end + +function M.get_buf_option(opt) + local status_ok, buf_option = pcall(vim.api.nvim_buf_get_option, 0, opt) + if not status_ok then + return nil + else + return buf_option + end +end + +return M diff --git a/lua/user/gitsigns.lua b/lua/user/gitsigns.lua new file mode 100644 index 0000000..744ecc7 --- /dev/null +++ b/lua/user/gitsigns.lua @@ -0,0 +1,48 @@ +local status_ok, gitsigns = pcall(require, "gitsigns") +if not status_ok then + return +end + +gitsigns.setup { + signs = { + add = { hl = "GitSignsAdd", text = "▎", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" }, + change = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, + delete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, + topdelete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, + changedelete = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + interval = 1000, + follow_files = true, + }, + attach_to_untracked = true, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + }, + current_line_blame_formatter_opts = { + relative_time = false, + }, + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, + preview_config = { + -- Options passed to nvim_open_win + border = "single", + style = "minimal", + relative = "cursor", + row = 0, + col = 1, + }, + yadm = { + enable = false, + }, +} diff --git a/lua/user/icons.lua b/lua/user/icons.lua new file mode 100644 index 0000000..c72ebf6 --- /dev/null +++ b/lua/user/icons.lua @@ -0,0 +1,154 @@ +return { + kind = { + Array = "", + Boolean = "", + Class = "", + Color = "", + Constant = "", + Constructor = "", + Enum = "", + EnumMember = "", + Event = "", + Field = "", + File = "", + Folder = "", + Function = "", + Interface = "", + Key = "", + Keyword = "", + Method = "", + Module = "", + Namespace = "", + Null = "ﳠ", + Number = "", + Object = "", + Operator = "", + Package = "", + Property = "", + Reference = "", + Snippet = "", + String = "", + Struct = "", + Text = "", + TypeParameter = "", + Unit = "", + Value = "", + Variable = "", + }, + git = { + LineAdded = "", + LineModified = "", + LineRemoved = "", + FileDeleted = "", + FileIgnored = "◌", + FileRenamed = "", + FileStaged = "S", + FileUnmerged = "", + FileUnstaged = "", + FileUntracked = "U", + Diff = "", + Repo = "", + Octoface = "", + Branch = "", + }, + ui = { + ArrowCircleDown = "", + ArrowCircleLeft = "", + ArrowCircleRight = "", + ArrowCircleUp = "", + BoldArrowDown = "", + BoldArrowLeft = "", + BoldArrowRight = "", + BoldArrowUp = "", + BoldClose = "", + BoldDividerLeft = "", + BoldDividerRight = "", + BoldLineLeft = "▎", + BookMark = "", + BoxChecked = "", + Bug = "", + Stacks = "", + Scopes = "", + Watches = "", + DebugConsole = "", + Calendar = "", + Check = "", + ChevronRight = ">", + ChevronShortDown = "", + ChevronShortLeft = "", + ChevronShortRight = "", + ChevronShortUp = "", + Circle = "", + Close = "", + CloudDownload = "", + Code = "", + Comment = "", + Dashboard = "", + DividerLeft = "", + DividerRight = "", + DoubleChevronRight = "»", + Ellipsis = "", + EmptyFolder = "", + EmptyFolderOpen = "", + File = "", + FileSymlink = "", + Files = "", + FindFile = "", + FindText = "", + Fire = "", + Folder = "", + FolderOpen = "", + FolderSymlink = "", + Forward = "", + Gear = "", + History = "", + Lightbulb = "", + LineLeft = "▏", + LineMiddle = "│", + List = "", + Lock = "", + NewFile = "", + Note = "", + Package = "", + Pencil = "", + Plus = "", + Project = "", + Search = "", + SignIn = "", + SignOut = "", + Tab = "", + Table = "", + Target = "", + Telescope = "", + Text = "", + Tree = "", + Triangle = "契", + TriangleShortArrowDown = "", + TriangleShortArrowLeft = "", + TriangleShortArrowRight = "", + TriangleShortArrowUp = "", + }, + diagnostics = { + BoldError = "", + Error = "", + BoldWarning = "", + Warning = "", + BoldInformation = "", + Information = "", + BoldQuestion = "", + Question = "", + BoldHint = "", + Hint = "", + Debug = "", + Trace = "✎", + }, + misc = { + Robot = "ﮧ", + Squirrel = "", + Tag = "", + Watch = "", + Smiley = "", + Package = "", + CircuitBoard = "", + }, +} diff --git a/lua/user/impatient.lua b/lua/user/impatient.lua new file mode 100644 index 0000000..81c2356 --- /dev/null +++ b/lua/user/impatient.lua @@ -0,0 +1,6 @@ +local status_ok, impatient = pcall(require, "impatient") +if not status_ok then + return +end + +impatient.enable_profile() diff --git a/lua/user/indentline.lua b/lua/user/indentline.lua new file mode 100644 index 0000000..1199289 --- /dev/null +++ b/lua/user/indentline.lua @@ -0,0 +1,70 @@ +local status_ok, indent_blankline = pcall(require, "indent_blankline") +if not status_ok then + return +end + +vim.g.indent_blankline_buftype_exclude = { "terminal", "nofile" } +vim.g.indent_blankline_filetype_exclude = { + "help", + "startify", + "dashboard", + "packer", + "neogitstatus", + "NvimTree", + "Trouble", +} +vim.g.indentLine_enabled = 1 +-- vim.g.indent_blankline_char = "│" +vim.g.indent_blankline_char = "▏" +-- vim.g.indent_blankline_char = "▎" +vim.g.indent_blankline_show_trailing_blankline_indent = false +vim.g.indent_blankline_show_first_indent_level = true +vim.g.indent_blankline_use_treesitter = true +vim.g.indent_blankline_show_current_context = true +vim.g.indent_blankline_context_patterns = { + "class", + "return", + "function", + "method", + "^if", + "^while", + "jsx_element", + "^for", + "^object", + "^table", + "block", + "arguments", + "if_statement", + "else_clause", + "jsx_element", + "jsx_self_closing_element", + "try_statement", + "catch_clause", + "import_statement", + "operation_type", +} +-- HACK: work-around for https://github.com/lukas-reineke/indent-blankline.nvim/issues/59 +vim.wo.colorcolumn = "99999" + +-- vim.cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]] +-- vim.cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]] +-- vim.cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]] +-- vim.cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]] +-- vim.cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]] +-- vim.cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]] +-- vim.opt.list = true +-- vim.opt.listchars:append "space:⋅" +-- vim.opt.listchars:append "space:" +-- vim.opt.listchars:append "eol:↴" + +indent_blankline.setup({ + -- show_end_of_line = true, + -- space_char_blankline = " ", + show_current_context = true, + -- show_current_context_start = true, + -- char_highlight_list = { + -- "IndentBlanklineIndent1", + -- "IndentBlanklineIndent2", + -- "IndentBlanklineIndent3", + -- }, +}) diff --git a/lua/user/keymaps.lua b/lua/user/keymaps.lua new file mode 100644 index 0000000..5a05026 --- /dev/null +++ b/lua/user/keymaps.lua @@ -0,0 +1,96 @@ +local opts = { noremap = true, silent = true } + +local term_opts = { silent = true } + +-- Shorten function name +local keymap = vim.api.nvim_set_keymap + +--Remap space as leader key +keymap("", "", "", opts) +vim.g.mapleader = " " +vim.g.maplocalleader = " " + +-- Modes +-- normal_mode = "n", +-- insert_mode = "i", +-- visual_mode = "v", +-- visual_block_mode = "x", +-- term_mode = "t", +-- command_mode = "c", + +-- Normal -- +-- Better window navigation +keymap("n", "", "h", opts) +keymap("n", "", "j", opts) +keymap("n", "", "k", opts) +keymap("n", "", "l", opts) + +-- Resize with arrows +-- keymap("n", "", ":resize -2", opts) +-- keymap("n", "", ":resize +2", opts) +-- keymap("n", "", ":vertical resize -2", opts) +-- keymap("n", "", ":vertical resize +2", opts) + +-- Navigate buffers +keymap("n", "", ":bnext", opts) +keymap("n", "", ":bprevious", opts) + +-- Move text up and down +keymap("n", "", ":m .+1==gi", opts) +keymap("n", "", ":m .-2==gi", opts) + +-- Insert -- +-- Press jk fast to exit insert mode +keymap("i", "jk", "", opts) +keymap("i", "kj", "", opts) + +-- Visual -- +-- Stay in indent mode +keymap("v", "<", "", ">gv", opts) + +-- Move text up and down +keymap("v", "", ":m .+1==", opts) +keymap("v", "", ":m .-2==", opts) +keymap("v", "p", '"_dP', opts) + +-- Visual Block -- +-- Move text up and down +keymap("x", "J", ":move '>+1gv-gv", opts) +keymap("x", "K", ":move '<-2gv-gv", opts) +keymap("x", "", ":move '>+1gv-gv", opts) +keymap("x", "", ":move '>+1gv-gv", opts) +keymap("x", "", ":move '<-2gv-gv", opts) +keymap("x", "", ":move '<-2gv-gv", opts) + +keymap("n", "", "t.", opts) +keymap("i", "", "t.", opts) +keymap("n", "", "t -1", opts) +keymap("i", "", "t -1", opts) +keymap("n", "", "t.", opts) +keymap("n", "", "t -1", opts) +keymap("n", "", "m+", opts) +keymap("i", "", "m+", opts) +keymap("n", "", "m-2", opts) +keymap("i", "", "m-2", opts) +keymap("n", "", "m+", opts) +keymap("n", "", "m-2", opts) +keymap("i", "", "w", opts) +keymap("n", "", "w", opts) +keymap("i", "", "LiveServer start", opts) +keymap("n", "q", "q", opts) +keymap("x", "", ":'<,'>t'>", opts) + +-- Visual Block -- +-- Move text up and down +keymap("x", "J", ":move '>+1gv-gv", opts) +keymap("x", "K", ":move '<-2gv-gv", opts) +keymap("x", "", ":move '>+1gv-gv", opts) +keymap("x", "", ":move '<-2gv-gv", opts) + +-- Terminal -- +-- Better terminal navigation +-- keymap("t", "", "h", term_opts) +-- keymap("t", "", "j", term_opts) +-- keymap("t", "", "k", term_opts) +-- keymap("t", "", "l", term_opts) diff --git a/lua/user/lsp/config.lua b/lua/user/lsp/config.lua new file mode 100644 index 0000000..4b1da5f --- /dev/null +++ b/lua/user/lsp/config.lua @@ -0,0 +1,25 @@ +local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer") +if not status_ok then + return +end + +local lspconfig = require("lspconfig") + +-- local servers = { "jsonls", "sumneko_lua","html","cssls","tsserver"} +local servers = { "jdtls" } + +lsp_installer.setup({ + ensure_installed = servers, +}) + +for _, server in pairs(servers) do + local opts = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + } + local has_custom_opts, server_custom_opts = pcall(require, "user.lsp.settings." .. server) + if has_custom_opts then + opts = vim.tbl_deep_extend("force", opts, server_custom_opts) + end + lspconfig[server].setup(opts) +end diff --git a/lua/user/lsp/handlers.lua b/lua/user/lsp/handlers.lua new file mode 100644 index 0000000..9d5f48d --- /dev/null +++ b/lua/user/lsp/handlers.lua @@ -0,0 +1,106 @@ +local M = {} + +local status_cmp_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") +if not status_cmp_ok then + return +end + +local icons = require("user.icons") + +M.capabilities = vim.lsp.protocol.make_client_capabilities() +M.capabilities.textDocument.completion.completionItem.snippetSupport = true +M.capabilities = cmp_nvim_lsp.default_capabilities(M.capabilities) + +M.setup = function() + local signs = { + + -- { name = "DiagnosticSignError", text = "" }, + -- { name = "DiagnosticSignWarn", text = "" }, + -- { name = "DiagnosticSignHint", text = "" }, + -- { name = "DiagnosticSignInfo", text = "" }, + { name = "DiagnosticSignError", text = icons.diagnostics.Error }, + { name = "DiagnosticSignWarn", text = icons.diagnostics.Warning }, + { name = "DiagnosticSignHint", text = icons.diagnostics.Hint }, + { name = "DiagnosticSignInfo", text = icons.diagnostics.Info }, + } + + for _, sign in ipairs(signs) do + vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) + end + + local config = { + virtual_text = false, -- disable virtual text + signs = { + active = signs, -- show signs + }, + update_in_insert = true, + underline = true, + severity_sort = true, + float = { + focusable = true, + style = "minimal", + border = "rounded", + source = "always", + header = "", + prefix = "", + }, + } + + vim.diagnostic.config(config) + + vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { + border = "rounded", + }) + + vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { + border = "rounded", + }) +end + +local function attach_navic(client, bufnr) + vim.g.navic_silence = true + local status_ok, navic = pcall(require, "nvim-navic") + if not status_ok then + return + end + navic.attach(client, bufnr) +end + +local function lsp_keymaps(bufnr) + local opts = { noremap = true, silent = true } + local keymap = vim.api.nvim_buf_set_keymap + keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) + keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) + keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) + keymap(bufnr, "n", "gI", "lua vim.lsp.buf.implementation()", opts) + keymap(bufnr, "n", "gr", "lua vim.lsp.buf.references()", opts) + keymap(bufnr, "n", "gl", "lua vim.diagnostic.open_float()", opts) + keymap(bufnr, "n", "lf", "lua vim.lsp.buf.format{ async = true }", opts) + keymap(bufnr, "n", "li", "LspInfo", opts) + keymap(bufnr, "n", "lI", "LspInstallInfo", opts) + keymap(bufnr, "n", "la", "lua vim.lsp.buf.code_action()", opts) + keymap(bufnr, "n", "lj", "lua vim.diagnostic.goto_next({buffer=0})", opts) + keymap(bufnr, "n", "lk", "lua vim.diagnostic.goto_prev({buffer=0})", opts) + keymap(bufnr, "n", "lr", "lua vim.lsp.buf.rename()", opts) + keymap(bufnr, "n", "ls", "lua vim.lsp.buf.signature_help()", opts) + keymap(bufnr, "n", "lq", "lua vim.diagnostic.setloclist()", opts) +end +M.on_attach = function(client, bufnr) + attach_navic(client, bufnr) + if client.name == "tsserver" then + client.server_capabilities.documentFormattingProvider = false + end + + if client.name == "sumneko_lua" then + client.server_capabilities.documentFormattingProvider = false + end + + lsp_keymaps(bufnr) + local status_ok, illuminate = pcall(require, "illuminate") + if not status_ok then + return + end + illuminate.on_attach(client) +end + +return M diff --git a/lua/user/lsp/init.lua b/lua/user/lsp/init.lua new file mode 100644 index 0000000..04805b4 --- /dev/null +++ b/lua/user/lsp/init.lua @@ -0,0 +1,9 @@ +local status_ok, _ = pcall(require, "lspconfig") +if not status_ok then + return +end + +require "user.lsp.mason" +require "user.lsp.config" -- ini hanya untuk windows supaya jdtls jalan, kalau pakai linu x remark saja +require("user.lsp.handlers").setup() +require "user.lsp.null-ls" diff --git a/lua/user/lsp/mason.lua b/lua/user/lsp/mason.lua new file mode 100644 index 0000000..d472748 --- /dev/null +++ b/lua/user/lsp/mason.lua @@ -0,0 +1,56 @@ +local servers = { + "sumneko_lua", + "cssls", + "html", + "tsserver", + "pyright", + -- "bashls", + "jsonls", + -- "yamlls", + -- "jdtls", + "emmet_ls", + "intelephense", + "marksman", +} + +local settings = { + ui = { + border = "none", + icons = { + package_installed = "◍", + package_pending = "◍", + package_uninstalled = "◍", + }, + }, + log_level = vim.log.levels.INFO, + max_concurrent_installers = 4, +} + +require("mason").setup(settings) +require("mason-lspconfig").setup({ + ensure_installed = servers, + automatic_installation = true, +}) + +local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") +if not lspconfig_status_ok then + return +end + +local opts = {} + +for _, server in pairs(servers) do + opts = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + } + + server = vim.split(server, "@")[1] + + local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server) + if require_ok then + opts = vim.tbl_deep_extend("force", conf_opts, opts) + end + + lspconfig[server].setup(opts) +end diff --git a/lua/user/lsp/null-ls.lua b/lua/user/lsp/null-ls.lua new file mode 100644 index 0000000..7b4542a --- /dev/null +++ b/lua/user/lsp/null-ls.lua @@ -0,0 +1,44 @@ +local null_ls_status_ok, null_ls = pcall(require, "null-ls") +if not null_ls_status_ok then + return +end + +-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting +local formatting = null_ls.builtins.formatting +-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics +local diagnostics = null_ls.builtins.diagnostics + +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + +null_ls.setup({ + debug = false, + sources = { + --formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }), + formatting.prettier, + formatting.prettierd, + formatting.black.with({ extra_args = { "--fast" } }), + formatting.stylua, + formatting.eslint_d, + formatting.google_java_format, + formatting.phpcbf, + -- formatting.clang_format, + -- diagnostics.flake8 + }, + + on_attach = function(client, bufnr) + --if client.resolved_capabilities.document_formatting then + --vim.cmd("autocmd BufWritePre lua vim.lsp.buf.format{async=true}") + --end + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ bufnr = bufnr }) + -- vim.lsp.buf.formatting_sync() + end, + }) + end + end, +}) diff --git a/lua/user/lsp/settings/jsonls.lua b/lua/user/lsp/settings/jsonls.lua new file mode 100644 index 0000000..b711932 --- /dev/null +++ b/lua/user/lsp/settings/jsonls.lua @@ -0,0 +1,197 @@ +local default_schemas = nil +local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls") +if status_ok then + default_schemas = jsonls_settings.get_default_schemas() +end + +local schemas = { + { + description = "TypeScript compiler configuration file", + fileMatch = { + "tsconfig.json", + "tsconfig.*.json", + }, + url = "https://json.schemastore.org/tsconfig.json", + }, + { + description = "Lerna config", + fileMatch = { "lerna.json" }, + url = "https://json.schemastore.org/lerna.json", + }, + { + description = "Babel configuration", + fileMatch = { + ".babelrc.json", + ".babelrc", + "babel.config.json", + }, + url = "https://json.schemastore.org/babelrc.json", + }, + { + description = "ESLint config", + fileMatch = { + ".eslintrc.json", + ".eslintrc", + }, + url = "https://json.schemastore.org/eslintrc.json", + }, + { + description = "Bucklescript config", + fileMatch = { "bsconfig.json" }, + url = "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/8.2.0/docs/docson/build-schema.json", + }, + { + description = "Prettier config", + fileMatch = { + ".prettierrc", + ".prettierrc.json", + "prettier.config.json", + }, + url = "https://json.schemastore.org/prettierrc", + }, + { + description = "Vercel Now config", + fileMatch = { "now.json" }, + url = "https://json.schemastore.org/now", + }, + { + description = "Stylelint config", + fileMatch = { + ".stylelintrc", + ".stylelintrc.json", + "stylelint.config.json", + }, + url = "https://json.schemastore.org/stylelintrc", + }, + { + description = "A JSON schema for the ASP.NET LaunchSettings.json files", + fileMatch = { "launchsettings.json" }, + url = "https://json.schemastore.org/launchsettings.json", + }, + { + description = "Schema for CMake Presets", + fileMatch = { + "CMakePresets.json", + "CMakeUserPresets.json", + }, + url = "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json", + }, + { + description = "Configuration file as an alternative for configuring your repository in the settings page.", + fileMatch = { + ".codeclimate.json", + }, + url = "https://json.schemastore.org/codeclimate.json", + }, + { + description = "LLVM compilation database", + fileMatch = { + "compile_commands.json", + }, + url = "https://json.schemastore.org/compile-commands.json", + }, + { + description = "Config file for Command Task Runner", + fileMatch = { + "commands.json", + }, + url = "https://json.schemastore.org/commands.json", + }, + { + description = "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.", + fileMatch = { + "*.cf.json", + "cloudformation.json", + }, + url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/cloudformation.schema.json", + }, + { + description = "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.", + fileMatch = { + "serverless.template", + "*.sam.json", + "sam.json", + }, + url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/sam.schema.json", + }, + { + description = "Json schema for properties json file for a GitHub Workflow template", + fileMatch = { + ".github/workflow-templates/**.properties.json", + }, + url = "https://json.schemastore.org/github-workflow-template-properties.json", + }, + { + description = "golangci-lint configuration file", + fileMatch = { + ".golangci.toml", + ".golangci.json", + }, + url = "https://json.schemastore.org/golangci-lint.json", + }, + { + description = "JSON schema for the JSON Feed format", + fileMatch = { + "feed.json", + }, + url = "https://json.schemastore.org/feed.json", + versions = { + ["1"] = "https://json.schemastore.org/feed-1.json", + ["1.1"] = "https://json.schemastore.org/feed.json", + }, + }, + { + description = "Packer template JSON configuration", + fileMatch = { + "packer.json", + }, + url = "https://json.schemastore.org/packer.json", + }, + { + description = "NPM configuration file", + fileMatch = { + "package.json", + }, + url = "https://json.schemastore.org/package.json", + }, + { + description = "JSON schema for Visual Studio component configuration files", + fileMatch = { + "*.vsconfig", + }, + url = "https://json.schemastore.org/vsconfig.json", + }, + { + description = "Resume json", + fileMatch = { "resume.json" }, + url = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", + }, +} + +local function extend(tab1, tab2) + for _, value in ipairs(tab2 or {}) do + table.insert(tab1, value) + end + return tab1 +end + +local extended_schemas = extend(schemas, default_schemas) + +local opts = { + settings = { + json = { + schemas = extended_schemas, + }, + }, + setup = { + commands = { + Format = { + function() + vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 }) + end, + }, + }, + }, +} + +return opts diff --git a/lua/user/lsp/settings/pyright.lua b/lua/user/lsp/settings/pyright.lua new file mode 100644 index 0000000..94b4419 --- /dev/null +++ b/lua/user/lsp/settings/pyright.lua @@ -0,0 +1,9 @@ +return { + settings = { + python = { + analysis = { + typeCheckingMode = "off", + }, + }, + }, +} diff --git a/lua/user/lsp/settings/sumneko_lua.lua b/lua/user/lsp/settings/sumneko_lua.lua new file mode 100644 index 0000000..2c078f3 --- /dev/null +++ b/lua/user/lsp/settings/sumneko_lua.lua @@ -0,0 +1,16 @@ +return { + settings = { + + Lua = { + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = { + [vim.fn.expand("$VIMRUNTIME/lua")] = true, + [vim.fn.stdpath("config") .. "/lua"] = true, + }, + }, + }, + }, +} diff --git a/lua/user/lualine.lua b/lua/user/lualine.lua new file mode 100644 index 0000000..44ad9e1 --- /dev/null +++ b/lua/user/lualine.lua @@ -0,0 +1,163 @@ +local status_ok, lualine = pcall(require, "lualine") +if not status_ok then + return +end +local icons = require("user.icons") +local hide_in_width = function() + return vim.fn.winwidth(0) > 80 +end + +local conditions = { + buffer_not_empty = function() + return vim.fn.empty(vim.fn.expand("%:t")) ~= 1 + end, + hide_in_width = function() + return vim.fn.winwidth(0) > 80 + end, + check_git_workspace = function() + local filepath = vim.fn.expand("%:p:h") + local gitdir = vim.fn.finddir(".git", filepath .. ";") + return gitdir and #gitdir > 0 and #gitdir < #filepath + end, +} + +local diagnostics = { + "diagnostics", + sources = { "nvim_diagnostic" }, + sections = { "error", "warn" }, + -- symbols = { error = " ", warn = " " }, + symbols = { + error = icons.diagnostics.BoldError .. " ", + warn = icons.diagnostics.BoldWarning .. " ", + }, + colored = true, + update_in_insert = false, + always_visible = false, +} + +local diff = { + "diff", + colored = true, + -- symbols = { added = " ", modified = " ", removed = " " }, -- changes diff symbols + symbols = { + added = icons.git.LineAdded .. " ", + modified = icons.git.LineModified .. " ", + removed = icons.git.LineRemoved .. " ", + }, -- changes diff symbols + cond = hide_in_width, +} + +local mode = { + "mode", + fmt = function(str) + return "-- " .. str .. " --" + end, +} + +local filetype = { + "filetype", + icons_enabled = true, + icon = nil, +} + +local branch = { + "branch", + icons_enabled = true, + --icon = "", + icon = icons.git.Branch, +} + +local location = { + "location", + padding = 0, +} + +-- cool function for progress +local progress = function() + local current_line = vim.fn.line(".") + local total_lines = vim.fn.line("$") + local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" } + local line_ratio = current_line / total_lines + local index = math.ceil(line_ratio * #chars) + return chars[index] +end + +local spaces = function() + -- return "->| " .. vim.api.nvim_buf_get_option(0, "shiftwidth") + return icons.ui.Tab .. " " .. vim.api.nvim_buf_get_option(0, "shiftwidth") +end + +local file_name = { + "filename", + cond = conditions.buffer_not_empty, +} + +local lsp_info = { + function() + --local msg = "No Active Lsp" + local msg = "LS Inactive" + local buf_ft = vim.api.nvim_buf_get_option(0, "filetype") + local clients = vim.lsp.get_active_clients() + if next(clients) == nil then + for i, name in ipairs(clients) do + msg = msg .. " " .. name + end + return msg + end + for _, client in ipairs(clients) do + local filetypes = client.config.filetypes + if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then + if msg == "LS Inactive" then + msg = "" + msg = msg .. client.name + else + msg = msg .. ", " .. client.name + end + end + end + return msg + end, + --icon = " ", + icon = icons.ui.Gear .. "", +} + +lualine.setup({ + options = { + icons_enabled = true, + theme = "auto", + component_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, + disabled_filetypes = { + "TelescopePrompt", + "packer", + "alpha", + "dashboard", + "NvimTree", + "Outline", + "DressingInput", + "toggleterm", + "lazy", + }, + always_divide_middle = true, + }, + sections = { + lualine_a = { branch }, + lualine_b = { mode }, + lualine_c = { diagnostics, lsp_info }, + -- lualine_c = { file_name, lsp_info }, + -- lualine_x = { "encoding", "fileformat", "filetype" }, + lualine_x = { diff, spaces, "encoding", filetype }, + lualine_y = { location }, + lualine_z = { progress }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { "filename" }, + lualine_x = { "location" }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + extensions = {}, +}) diff --git a/lua/user/mason-null-ls.lua b/lua/user/mason-null-ls.lua new file mode 100644 index 0000000..86412f0 --- /dev/null +++ b/lua/user/mason-null-ls.lua @@ -0,0 +1,6 @@ +local status_ok, mason_null_ls = pcall(require, "mason-null-ls") +if not status_ok then + return +end +mason_null_ls.setup({ automatic_setup = true }) +mason_null_ls.setup_handlers({}) diff --git a/lua/user/neoscroll.lua b/lua/user/neoscroll.lua new file mode 100644 index 0000000..092bb76 --- /dev/null +++ b/lua/user/neoscroll.lua @@ -0,0 +1,5 @@ +local status_ok, neoscroll = pcall(require, "neoscroll") +if not status_ok then + return +end +neoscroll.setup() \ No newline at end of file diff --git a/lua/user/nvim-tree.lua b/lua/user/nvim-tree.lua new file mode 100644 index 0000000..6e5cba1 --- /dev/null +++ b/lua/user/nvim-tree.lua @@ -0,0 +1,87 @@ +local status_ok, nvim_tree = pcall(require, "nvim-tree") +if not status_ok then + return +end + +local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config") +if not config_status_ok then + return +end + +local tree_cb = nvim_tree_config.nvim_tree_callback +local icons = require("user.icons") + +nvim_tree.setup({ + update_focused_file = { + enable = true, + update_cwd = true, + }, + renderer = { + root_folder_modifier = ":t", + indent_markers = { + enable = true, + inline_arrows = true, + icons = { + corner = "└", + edge = "│", + item = "│", + bottom = "─", + none = " ", + }, + }, + icons = { + webdev_colors = true, + show = { + git = true, + folder = true, + file = true, + folder_arrow = true, + }, + glyphs = { + default = icons.ui.Text, + symlink = icons.ui.FileSymlink, + folder = { + arrow_open = icons.ui.ChevronShortDown, + arrow_closed = icons.ui.ChevronShortRight, + default = icons.ui.Folder, + empty = icons.ui.EmptyFolder, + empty_open = icons.ui.EmptyFolderOpen, + open = icons.ui.FolderOpen, + symlink = icons.ui.FolderSymlink, + symlink_open = icons.ui.FolderSymlink, + }, + git = { + deleted = icons.git.FileDeleted, + ignored = icons.git.FileIgnored, + renamed = icons.git.FileRenamed, + staged = icons.git.FileStaged, + unmerged = icons.git.FileUnmerged, + unstaged = icons.git.FileUnstaged, + untracked = icons.git.FileUntracked, + }, + }, + }, + }, + diagnostics = { + enable = true, + show_on_dirs = true, + icons = { + hint = icons.diagnostics.BoldHint, + info = icons.diagnostics.BoldInformation, + warning = icons.diagnostics.BoldWarning, + error = icons.diagnostics.BoldError, + }, + }, + view = { + width = 30, + hide_root_folder = true, + side = "left", + mappings = { + list = { + { key = { "l", "", "o" }, cb = tree_cb("edit") }, + { key = "h", cb = tree_cb("close_node") }, + { key = "v", cb = tree_cb("vsplit") }, + }, + }, + }, +}) diff --git a/lua/user/nvimscroll.lua b/lua/user/nvimscroll.lua new file mode 100644 index 0000000..44223c7 --- /dev/null +++ b/lua/user/nvimscroll.lua @@ -0,0 +1,9 @@ +local status_ok, scrollview = pcall(require, "scrollview") +if not status_ok then + return +end +scrollview.setup({ + bg = "LightCyan", + ctermbg = 160, +}) +vim.g.scrollview_excluded_filetypes = { "NvimTree", "vista_kind" } diff --git a/lua/user/options.lua b/lua/user/options.lua new file mode 100644 index 0000000..57d7211 --- /dev/null +++ b/lua/user/options.lua @@ -0,0 +1,55 @@ +local options = { + backspace = vim.opt.backspace + { "nostop" }, -- Don't stop backspace at insert + clipboard = "unnamedplus", -- Connection to the system clipboard + cmdheight = 0, -- hide command line unless needed + completeopt = { "menuone", "noselect" }, -- Options for insert mode completion + copyindent = true, -- Copy the previous indentation on autoindenting + cursorline = true, -- Highlight the text line of the cursor + expandtab = true, -- Enable the use of space in tab + fileencoding = "utf-8", -- File content encoding for the buffer + fillchars = { eob = " " }, -- Disable `~` on nonexistent lines + history = 100, -- Number of commands to remember in a history table + ignorecase = true, -- Case insensitive searching + laststatus = 3, -- globalstatus + lazyredraw = true, -- lazily redraw screen + mouse = "a", -- Enable mouse support + number = true, -- Show numberline + preserveindent = true, -- Preserve indent structure as much as possible + pumheight = 10, -- Height of the pop up menu + relativenumber = true, -- Show relative numberline + scrolloff = 8, -- Number of lines to keep above and below the cursor + shiftwidth = 2, -- Number of space inserted for indentation + showmode = false, -- Disable showing modes in command line + showtabline = 2, -- always display tabline + sidescrolloff = 8, -- Number of columns to keep at the sides of the cursor + signcolumn = "yes", -- Always show the sign column + smartcase = true, -- Case sensitivie searching + splitbelow = true, -- Splitting a new window below the current one + splitright = true, -- Splitting a new window at the right of the current one + swapfile = false, -- Disable use of swapfile for the buffer + tabstop = 2, -- Number of space in a tab + termguicolors = true, -- Enable 24-bit RGB color in the TUI + timeoutlen = 300, -- Length of time to wait for a mapped sequence + undofile = true, -- Enable persistent undo + updatetime = 300, -- Length of time to wait before triggering the plugin + wrap = true, -- Disable wrapping of lines longer than the width of window + writebackup = false, -- Disable making a backup before overwriting a file + -- minimal number of screen columns either side of cursor if wrap is `false` + -- guifont = "monospace:h17", -- the font used in graphical neovim applications + -- guifont = "Source_Code_Pro:h17", -- the font used in graphical neovim applications + guifont = "Hack_Nerd_Font:h17", -- the font used in graphical neovim applications + whichwrap = "bs<>[]hl", -- which "horizontal" keys are allowed to travel to prev/next line -- which "horizontal" keys are allowed to travel to prev/next line +} + +for k, v in pairs(options) do + vim.opt[k] = v +end + +-- vim.opt.shortmess = "ilmnrx" -- flags to shorten vim messages, see :help 'shortmess' +-- vim.o.winbar = "%{%v:lua.require'nvim-navic'.get_location()%}" +vim.opt.shortmess:append("c") -- don't give |ins-completion-menu| messages +vim.opt.iskeyword:append("-") -- hyphenated words recognized by searches +vim.opt.formatoptions:remove({ "t", "c", "q", "j" }) +vim.opt.formatoptions = "croql" +-- vim.opt.formatoptions:remove({ "c", "r", "o" }) -- don't insert the current comment leader automatically for auto-wrapping comments using 'textwidth', hitting in insert mode, or hitting 'o' or 'O' in normal mode. +vim.opt.runtimepath:remove("/usr/share/vim/vimfiles") -- separate vim plugins from neovim in case vim still in use diff --git a/lua/user/plugins.lua b/lua/user/plugins.lua new file mode 100644 index 0000000..cfa7a14 --- /dev/null +++ b/lua/user/plugins.lua @@ -0,0 +1,396 @@ +local fn = vim.fn + +-- Automatically install packer +local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" +if fn.empty(fn.glob(install_path)) > 0 then + PACKER_BOOTSTRAP = fn.system({ + "git", + "clone", + "--depth", + "1", + "https://github.com/wbthomason/packer.nvim", + install_path, + }) + print("Installing packer close and reopen Neovim...") + vim.cmd([[packadd packer.nvim]]) +end + +-- Autocommand that reloads neovim whenever you save the plugins.lua file +vim.cmd([[ + augroup packer_user_config + autocmd! + autocmd BufWritePost plugins.lua source | PackerSync + augroup end +]]) + +-- Use a protected call so we don't error out on first use +local status_ok, packer = pcall(require, "packer") +if not status_ok then + return +end + +-- Have packer use a popup window +packer.init({ + display = { + open_fn = function() + return require("packer.util").float({ border = "rounded" }) + end, + }, +}) + +-- Install your plugins here +return packer.startup(function(use) + use({ + "wbthomason/packer.nvim", + commit = "6afb67460283f0e990d35d229fd38fdc04063e0a", + -- config = function() + -- require("user.plugins") + -- end, + }) -- Have packer manage itself + use({ + "nvim-lua/plenary.nvim", + commit = "4b7e52044bbb84242158d977a50c4cbcd85070c7", + event = "BufWinEnter", + module = "plenary", + }) -- Useful lua functions used by lots of plugins + use({ + "windwp/nvim-autopairs", + commit = "4fc96c8f3df89b6d23e5092d31c866c53a346347", + after = "nvim-cmp", + config = function() + require("user.autopairs") + end, + }) -- Autopairs, integrates with both cmp and treesitter + use({ + "numToStr/Comment.nvim", + commit = "97a188a98b5a3a6f9b1b850799ac078faa17ab67", + event = "BufReadPost", + config = function() + require("user.comment") + end, + }) + use({ + "JoosepAlviste/nvim-ts-context-commentstring", + commit = "4d3a68c41a53add8804f471fcc49bb398fe8de08", + event = "BufReadPost", + after = "nvim-treesitter", + }) + use({ + "kyazdani42/nvim-web-devicons", + commit = "563f3635c2d8a7be7933b9e547f7c178ba0d4352", + module = "nvim-web-devicons", + config = function() + require("user.webdevicons") + end, + }) + use({ + "kyazdani42/nvim-tree.lua", + commit = "7282f7de8aedf861fe0162a559fc2b214383c51c", + -- ini dirimak karena jadi tab tidak kebuka full + -- on = { "NvimTreeToggle" }, + -- cmd = "NvimTreeToggle", + require = "kyazdani42/nvim-web-devicons", + config = function() + require("user.nvim-tree") + end, + }) + use({ + "akinsho/bufferline.nvim", + commit = "83bf4dc7bff642e145c8b4547aa596803a8b4dc4", + require = "kyazdani42/nvim-web-devicons", + event = "BufWinEnter", + config = function() + require("user.bufferline") + end, + }) + use({ "moll/vim-bbye", commit = "25ef93ac5a87526111f43e5110675032dbcacf56" }) + use({ + "nvim-lualine/lualine.nvim", + commit = "a52f078026b27694d2290e34efa61a6e4a690621", + require = { "kyazdani42/nvim-web-devicons", opt = true }, + event = "BufWinEnter", + config = function() + require("user.lualine") + end, + }) + use({ + "akinsho/toggleterm.nvim", + commit = "2a787c426ef00cb3488c11b14f5dcf892bbd0bda", + module = "toggleterm", + cmd = "Toggleterm", + event = "BufWinEnter", + config = function() + require("user.toggleterm") + end, + }) + use({ "ahmedkhalf/project.nvim", commit = "628de7e433dd503e782831fe150bb750e56e55d6" }) + use({ + "lewis6991/impatient.nvim", + commit = "b842e16ecc1a700f62adb9802f8355b99b52a5a6", + config = function() + require("user.impatient") + end, + }) + use({ + "lukas-reineke/indent-blankline.nvim", + commit = "db7cbcb40cc00fc5d6074d7569fb37197705e7f6", + event = "BufRead", + config = function() + require("user.indentline") + end, + }) + use({ + "goolord/alpha-nvim", + commit = "0bb6fc0646bcd1cdb4639737a1cee8d6e08bcc31", + module = "alpha", + event = "BufWinEnter", + config = function() + require("user.alpha") + end, + }) + use({ + "folke/which-key.nvim", + event = "BufWinEnter", + config = function() + require("user.whichkey") + end, + }) + + -- Colorschemes + use({ + "folke/tokyonight.nvim", + commit = "66bfc2e8f754869c7b651f3f47a2ee56ae557764", + -- ini diremark karena tab diatas jadi tidak ada warnanya + -- event = "BufWinEnter", + config = function() + require("user.tokyonight") + -- require("user.colorscheme") + end, + }) + + -- Cmp + use({ + "hrsh7th/nvim-cmp", + commit = "b0dff0ec4f2748626aae13f011d1a47071fe9abc", + event = "BufWinEnter", + config = function() + require("user.cmp") + end, + }) -- The completion plugin + use({ "hrsh7th/cmp-buffer", commit = "3022dbc9166796b644a841a02de8dd1cc1d311fa", after = "nvim-cmp" }) -- buffer completions + use({ "hrsh7th/cmp-path", commit = "447c87cdd6e6d6a1d2488b1d43108bfa217f56e1", after = "nvim-cmp" }) -- path completions + use({ "saadparwaiz1/cmp_luasnip", commit = "a9de941bcbda508d0a45d28ae366bb3f08db2e36", after = "nvim-cmp" }) -- snippet completions + use({ + "hrsh7th/cmp-nvim-lsp", + commit = "3cf38d9c957e95c397b66f91967758b31be4abe6", + after = "nvim-cmp", + event = "BufWinEnter", + }) + use({ "hrsh7th/cmp-nvim-lua", commit = "d276254e7198ab7d00f117e88e223b4bd8c02d21", after = "nvim-cmp" }) + + -- Snippets + use({ + "L3MON4D3/LuaSnip", + commit = "8f8d493e7836f2697df878ef9c128337cbf2bb84", + module = "luasnip", + wants = "friendly-snippets", + config = function() + require("user.snip") + end, + }) --snippet engine + use({ "rafamadriz/friendly-snippets", commit = "2be79d8a9b03d4175ba6b3d14b082680de1b31b1", opt = true }) -- a bunch of snippets to use + + -- LSP + use({ + "neovim/nvim-lspconfig", + commit = "f11fdff7e8b5b415e5ef1837bdcdd37ea6764dda", + module = "lspconfig", + event = "BufWinEnter", + config = function() + require("user.lsp") + end, + }) -- enable LSP + use({ + "williamboman/mason.nvim", + commit = "c2002d7a6b5a72ba02388548cfaf420b864fbc12", + module = "mason", + cmd = { + "Mason", + "MasonInstall", + "MasonUninstall", + "MasonUninstallAll", + "MasonLog", + }, + config = function() + vim.tbl_map(function(plugin) + pcall(require, plugin) + end, { "lspconfig", "null-ls" }) + end, + }) -- simple to use language server installer + use({ "williamboman/mason-lspconfig.nvim", commit = "0051870dd728f4988110a1b2d47f4a4510213e31" }) + use({ "jose-elias-alvarez/null-ls.nvim", commit = "c0c19f32b614b3921e17886c541c13a72748d450" }) -- for formatters and linters + use({ "RRethy/vim-illuminate", commit = "a2e8476af3f3e993bb0d6477438aad3096512e42" }) + + -- Telescope + use({ + "nvim-telescope/telescope.nvim", + commit = "76ea9a898d3307244dce3573392dcf2cc38f340f", + require = { { "nvim-lua/plenary.nvim" } }, + cmd = "Telescope", + config = function() + require("user.telescope") + end, + }) + + -- Treesitter + use({ + "nvim-treesitter/nvim-treesitter", + commit = "8e763332b7bf7b3a426fd8707b7f5aa85823a5ac", + run = ":TSUpdate", + event = "BufWinEnter", + config = function() + require("user.treesitter") + end, + }) + + -- custom akn + use({ "manzeloth/live-server" }) + use({ "mg979/vim-visual-multi", event = "BufWinEnter" }) + use({ + "windwp/nvim-ts-autotag", + event = "InsertEnter", + after = "nvim-treesitter", + -- config dipindah ke treesitter config + -- config = function() + -- require("user.autotag") + -- end, + }) + use({ + "CRAG666/code_runner.nvim", + requires = "nvim-lua/plenary.nvim", + cmd = { "RunCode", "RunFile", "RunProject", "RunClose" }, + config = function() + require("user.coderunner") + end, + }) + use({ + "NvChad/nvim-colorizer.lua", + event = "BufWinEnter", + config = function() + require("user.colorizer") + end, + }) + use({ "williamboman/nvim-lsp-installer" }) + use({ + "SmiteshP/nvim-navic", + requires = "neovim/nvim-lspconfig", + event = "BufRead", + config = function() + require("user.breadcrumb") + require("user.winbar") + end, + }) + use({ + "rcarriga/nvim-notify", + module = "notify", + event = "BufRead", + config = function() + vim.notify = require("notify") + end, + }) + use({ + "mrjones2014/smart-splits.nvim", + event = "BufWinEnter", + config = function() + require("user.smartspit") + end, + }) + -- null-ls manager + use({ + "jayp0521/mason-null-ls.nvim", + after = "null-ls.nvim", + event = "BufRead", + config = function() + require("user.mason-null-ls") + end, + }) + use({ + "stevearc/dressing.nvim", + event = "BufWinEnter", + config = function() + require("user.dressing") + end, + }) + + use({ + "folke/todo-comments.nvim", + event = "BufRead", + config = function() + require("todo-comments").setup() + end, + }) + use({ + "karb94/neoscroll.nvim", + event = "BufRead", + config = function() + require("user.neoscroll") + end, + }) + use({ + "dstein64/nvim-scrollview", + event = "BufRead", + config = function() + require("user.nvimscroll") + end, + }) + use({ + "gelguy/wilder.nvim", + event = "BufWinEnter", + config = function() + local wilder = require("wilder") + wilder.setup({ modes = { ":", "/", "?" } }) + wilder.set_option( + "renderer", + wilder.popupmenu_renderer({ + highlighter = wilder.basic_highlighter(), + left = { " ", wilder.popupmenu_devicons() }, + right = { " ", wilder.popupmenu_scrollbar() }, + }) + ) + end, + }) + use({ + "gbprod/yanky.nvim", + event = "BufRead", + config = function() + require("user.yanky") + end, + }) + use({ "dstein64/vim-startuptime" }) + use({ "p00f/nvim-ts-rainbow", event = "BufWinEnter", after = "nvim-treesitter" }) + + -- ini plugins alternatif yang tidak digunakan lagi + -- use({ "rebelot/kanagawa.nvim" }) + -- use({ "mfussenegger/nvim-jdtls" }) + -- use({ "ellisonleao/gruvbox.nvim" }) + -- use({ "EdenEast/nightfox.nvim" }) + -- use({ "morhetz/gruvbox" }) + + -- Git + use({ + "lewis6991/gitsigns.nvim", + commit = "2c6f96dda47e55fa07052ce2e2141e8367cbaaf2", + disable = vim.fn.executable("git") == 0, + ft = "gitcommit", + event = "BufWinEnter", + config = function() + require("user.gitsigns") + end, + }) + + -- Automatically set up your configuration after cloning packer.nvim + -- Put this at the end after all plugins + if PACKER_BOOTSTRAP then + require("packer").sync() + end +end) diff --git a/lua/user/project.lua b/lua/user/project.lua new file mode 100644 index 0000000..e44dd0e --- /dev/null +++ b/lua/user/project.lua @@ -0,0 +1,48 @@ +local status_ok, project = pcall(require, "project_nvim") +if not status_ok then + return +end +project.setup({ + ---@usage set to false to disable project.nvim. + --- This is on by default since it's currently the expected behavior. + active = true, + + on_config_done = nil, + + ---@usage set to true to disable setting the current-woriking directory + --- Manual mode doesn't automatically change your root directory, so you have + --- the option to manually do so using `:ProjectRoot` command. + manual_mode = false, + + ---@usage Methods of detecting the root directory + --- Allowed values: **"lsp"** uses the native neovim lsp + --- **"pattern"** uses vim-rooter like glob pattern matching. Here + --- order matters: if one is not detected, the other is used as fallback. You + --- can also delete or rearangne the detection methods. + -- detection_methods = { "lsp", "pattern" }, -- NOTE: lsp detection will get annoying with multiple langs in one project + detection_methods = { "pattern" }, + + ---@usage patterns used to detect root dir, when **"pattern"** is in detection_methods + patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json" ,"main*" }, + + ---@ Show hidden files in telescope when searching for files in a project + show_hidden = false, + + ---@usage When set to false, you will get a message when project.nvim changes your directory. + -- When set to false, you will get a message when project.nvim changes your directory. + silent_chdir = true, + + ---@usage list of lsp client names to ignore when using **lsp** detection. eg: { "efm", ... } + ignore_lsp = {}, + + ---@type string + ---@usage path to store the project history for use in telescope + datapath = vim.fn.stdpath("data"), +}) + +local tele_status_ok, telescope = pcall(require, "telescope") +if not tele_status_ok then + return +end + +telescope.load_extension('projects') diff --git a/lua/user/smartspit.lua b/lua/user/smartspit.lua new file mode 100644 index 0000000..94242c9 --- /dev/null +++ b/lua/user/smartspit.lua @@ -0,0 +1,18 @@ +local status_ok, smart_splits = pcall(require, "smart-splits") +if not status_ok then + return +end +smart_splits.setup({ + ignored_filetypes = { + "nofile", + "quickfix", + "qf", + "prompt", + }, + ignored_buftypes = { "nofile" }, +}) + +vim.keymap.set("n", "", require("smart-splits").resize_left) +vim.keymap.set("n", "", require("smart-splits").resize_down) +vim.keymap.set("n", "", require("smart-splits").resize_right) diff --git a/lua/user/snip/init.lua b/lua/user/snip/init.lua new file mode 100644 index 0000000..7383736 --- /dev/null +++ b/lua/user/snip/init.lua @@ -0,0 +1,49 @@ +local status_ok = pcall(require, "luasnip") +if not status_ok then + return +end + +local lpath = vim.fn.stdpath("config") .. "/my-snippets" + + +-- kalau mau di pakai snipetnya baru di buaka remarknya karena bikin berat kalau load terus dan ga di pakai + +-- require("luasnip.loaders.from_vscode").lazy_load() +-- -- specify the full path... +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/B5-Snippets", +-- }) +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/laravel-blade", +-- }) +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/laravel-blade2", +-- }) +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/laravel5", +-- }) +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/javascript", +-- }) +require("luasnip.loaders.from_vscode").lazy_load({ + paths = lpath .. "/html", +}) +require("luasnip.loaders.from_vscode").lazy_load({ + paths = lpath .. "/javascript-snippet", +}) +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/codeigniter4", +-- }) +-- require("luasnip.loaders.from_vscode").lazy_load({ +-- paths = lpath .. "/font-awesome", +-- }) +-- or relative to the directory of $MYVIMRC +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/B5-Snippets" }) +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/laravel-blade" }) +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/laravel-blade2" }) +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/laravel5" }) +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/javascript" }) +require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/html" }) +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/codeigniter4" }) +--require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/font-awesome" }) +require("luasnip.loaders.from_vscode").load({ paths = lpath .. "/javascript-snippet" }) diff --git a/lua/user/telescope.lua b/lua/user/telescope.lua new file mode 100644 index 0000000..047d3e0 --- /dev/null +++ b/lua/user/telescope.lua @@ -0,0 +1,96 @@ +local status_ok, telescope = pcall(require, "telescope") +if not status_ok then + return +end + +local actions = require "telescope.actions" + +telescope.setup { + defaults = { + + prompt_prefix = " ", + selection_caret = " ", + path_display = { "smart" }, + + mappings = { + i = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.close, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + [""] = actions.complete_tag, + [""] = actions.which_key, -- keys from pressing + }, + + n = { + [""] = actions.close, + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + + ["j"] = actions.move_selection_next, + ["k"] = actions.move_selection_previous, + ["H"] = actions.move_to_top, + ["M"] = actions.move_to_middle, + ["L"] = actions.move_to_bottom, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + ["?"] = actions.which_key, + }, + }, + }, + pickers = { + -- Default configuration for builtin pickers goes here: + -- picker_name = { + -- picker_config_key = value, + -- ... + -- } + -- Now the picker_config_key will be applied every time you call this + -- builtin picker + }, + extensions = { + -- Your extension configuration goes here: + -- extension_name = { + -- extension_config_key = value, + -- } + -- please take a look at the readme of the extension you want to configure + }, +} diff --git a/lua/user/toggleterm.lua b/lua/user/toggleterm.lua new file mode 100644 index 0000000..d54bfa0 --- /dev/null +++ b/lua/user/toggleterm.lua @@ -0,0 +1,70 @@ +local status_ok, toggleterm = pcall(require, "toggleterm") +if not status_ok then + return +end + +toggleterm.setup({ + size = 20, + open_mapping = [[]], + hide_numbers = true, + shade_filetypes = {}, + shade_terminals = true, + shading_factor = 2, + start_in_insert = true, + insert_mappings = true, + persist_size = true, + direction = "float", + close_on_exit = true, + shell = vim.o.shell, + float_opts = { + border = "curved", + winblend = 0, + highlights = { + border = "Normal", + background = "Normal", + }, + }, +}) + +function _G.set_terminal_keymaps() + local opts = {noremap = true} + vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) + vim.api.nvim_buf_set_keymap(0, 't', 'jk', [[]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[h]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[j]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[k]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) +end + +vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') + +local Terminal = require("toggleterm.terminal").Terminal +local lazygit = Terminal:new({ cmd = "lazygit", hidden = true }) + +function _LAZYGIT_TOGGLE() + lazygit:toggle() +end + +local node = Terminal:new({ cmd = "node", hidden = true }) + +function _NODE_TOGGLE() + node:toggle() +end + +local ncdu = Terminal:new({ cmd = "ncdu", hidden = true }) + +function _NCDU_TOGGLE() + ncdu:toggle() +end + +local htop = Terminal:new({ cmd = "htop", hidden = true }) + +function _HTOP_TOGGLE() + htop:toggle() +end + +local python = Terminal:new({ cmd = "python", hidden = true }) + +function _PYTHON_TOGGLE() + python:toggle() +end diff --git a/lua/user/tokyonight.lua b/lua/user/tokyonight.lua new file mode 100644 index 0000000..e76a352 --- /dev/null +++ b/lua/user/tokyonight.lua @@ -0,0 +1,40 @@ +local status_ok, tokyonight = pcall(require, "tokyonight") +if not status_ok then + return +end +tokyonight.setup({ + -- your configuration comes here + -- or leave it empty to use the default settings + style = "storm", -- The theme comes in three styles, `storm`, `moon`, a darker variant `night` and `day` + light_style = "day", -- The theme is used when the background is set to light + transparent = false, -- Enable this to disable setting the background color + terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim + styles = { + -- Style to be applied to different syntax groups + -- Value is any valid attr-list value for `:help nvim_set_hl` + -- comments = { italic = true }, + comments = { italic = true }, + keywords = { italic = true }, + functions = {}, + variables = {}, + -- Background styles. Can be "dark", "transparent" or "normal" + sidebars = "dark", -- style for sidebars, see below + floats = "dark", -- style for floating windows + }, + sidebars = { "qf", "help" }, -- Set a darker background on sidebar-like windows. For example: `["qf", "vista_kind", "terminal", "packer"]` + day_brightness = 0.2, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors + hide_inactive_statusline = false, -- Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard **StatusLine** and **LuaLine**. + dim_inactive = false, -- dims inactive windows + lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold + + --- You can override specific color groups to use other groups or a hex color + --- function will be called with a ColorScheme table + --@param colors ColorScheme + --on_colors = function(colors) end, + + --- You can override specific highlights to use other groups or a hex color + --- function will be called with a Highlights and ColorScheme table + --@param highlights Highlights + --@param colors ColorScheme + --on_highlights = function(highlights, colors) end, +}) diff --git a/lua/user/webdevicons.lua b/lua/user/webdevicons.lua new file mode 100644 index 0000000..ab4f05e --- /dev/null +++ b/lua/user/webdevicons.lua @@ -0,0 +1,1764 @@ +local status_ok, webicon = pcall(require, "nvim-web-devicons") +if not status_ok then + return +end +webicon.setup { + -- your personnal icons can go here (to override) + -- you can specify color or cterm_color instead of specifying both of them + -- DevIcon will be appended to `name` + override = { + [".babelrc"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Babelrc", + }, + [".bash_profile"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "BashProfile", + }, + [".bashrc"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Bashrc", + }, + [".DS_Store"] = { + icon = "", + color = "#41535b", + cterm_color = "239", + name = "DsStore", + }, + [".gitattributes"] = { + icon = "", + color = "#41535b", + cterm_color = "239", + name = "GitAttributes", + }, + [".gitconfig"] = { + icon = "", + color = "#41535b", + cterm_color = "239", + name = "GitConfig", + }, + [".gitignore"] = { + icon = "", + color = "#e24329", + cterm_color = "166", + name = "GitIgnore", + }, + [".gitlab-ci.yml"] = { + icon = "", + color = "#e24329", + cterm_color = "166", + name = "GitlabCI", + }, + [".gitmodules"] = { + icon = "", + color = "#41535b", + cterm_color = "239", + name = "GitModules", + }, + [".gvimrc"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Gvimrc", + }, + [".npmignore"] = { + icon = "", + color = "#E8274B", + cterm_color = "161", + name = "NPMIgnore", + }, + [".npmrc"] = { + icon = "", + color = "#E8274B", + cterm_color = "161", + name = "NPMrc", + }, + [".settings.json"] = { + icon = "", + color = "#854CC7", + cterm_color = "98", + name = "SettingsJson", + }, + [".vimrc"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Vimrc", + }, + [".zprofile"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Zshprofile", + }, + [".zshenv"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Zshenv", + }, + [".zshrc"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Zshrc", + }, + ["Brewfile"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Brewfile", + }, + ["CMakeLists.txt"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "CMakeLists", + }, + ["COMMIT_EDITMSG"] = { + icon = "", + color = "#41535b", + cterm_color = "239", + name = "GitCommit", + }, + ["COPYING"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "License", + }, + ["COPYING.LESSER"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "License", + }, + ["Dockerfile"] = { + icon = "", + color = "#0087c9", + cterm_color = "32", + name = "Dockerfile", + }, + ["Gemfile$"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Gemfile", + }, + ["R"] = { + icon = "ﳒ", + color = "#358a5b", + cterm_color = "65", + name = "R", + }, + ["Rmd"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Rmd", + }, + ["Vagrantfile$"] = { + icon = "", + color = "#1563FF", + cterm_color = "27", + name = "Vagrantfile", + }, + ["_gvimrc"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Gvimrc", + }, + ["_vimrc"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Vimrc", + }, + ["ai"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Ai", + }, + ["awk"] = { + icon = "", + color = "#4d5a5e", + cterm_color = "240", + name = "Awk", + }, + ["bash"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Bash", + }, + ["bat"] = { + icon = "", + color = "#C1F12E", + cterm_color = "154", + name = "Bat", + }, + ["bmp"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Bmp", + }, + ["c"] = { + icon = "", + color = "#599eff", + cterm_color = "75", + name = "C", + }, + ["c++"] = { + icon = "", + color = "#f34b7d", + cterm_color = "204", + name = "CPlusPlus", + }, + ["cbl"] = { + icon = "⚙", + color = "#005ca5", + cterm_color = "25", + name = "Cobol", + }, + ["cc"] = { + icon = "", + color = "#f34b7d", + cterm_color = "204", + name = "CPlusPlus", + }, + ["cfg"] = { + icon = "", + color = "#ECECEC", + cterm_color = "255", + name = "Configuration", + }, + ["clj"] = { + icon = "", + color = "#8dc149", + cterm_color = "107", + name = "Clojure", + }, + ["cljc"] = { + icon = "", + color = "#8dc149", + cterm_color = "107", + name = "ClojureC", + }, + ["cljs"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "ClojureJS", + }, + ["cljd"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "ClojureDart", + }, + ["cmake"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "CMake", + }, + ["cob"] = { + icon = "⚙", + color = "#005ca5", + cterm_color = "25", + name = "Cobol", + }, + ["cobol"] = { + icon = "⚙", + color = "#005ca5", + cterm_color = "25", + name = "Cobol", + }, + ["coffee"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Coffee", + }, + ["conf"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "Conf", + }, + ["config.ru"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "ConfigRu", + }, + ["cp"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Cp", + }, + ["cpp"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Cpp", + }, + ["cpy"] = { + icon = "⚙", + color = "#005ca5", + cterm_color = "25", + name = "Cobol", + }, + ["cr"] = { + icon = "", + color = "#000000", + cterm_color = "16", + name = "Crystal", + }, + ["cs"] = { + icon = "", + color = "#596706", + cterm_color = "58", + name = "Cs", + }, + ["csh"] = { + icon = "", + color = "#4d5a5e", + cterm_color = "240", + name = "Csh", + }, + ["cson"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Cson", + }, + ["css"] = { + icon = "", + color = "#42a5f5", + cterm_color = "75", + name = "Css", + }, + ["csv"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Csv", + }, + ["cxx"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Cxx", + }, + ["d"] = { + icon = "", + color = "#427819", + cterm_color = "64", + name = "D", + }, + ["dart"] = { + icon = "", + color = "#03589C", + cterm_color = "25", + name = "Dart", + }, + ["db"] = { + icon = "", + color = "#dad8d8", + cterm_color = "253", + name = "Db", + }, + ["desktop"] = { + icon = "", + color = "#563d7c", + cterm_color = "60", + name = "DesktopEntry", + }, + ["diff"] = { + icon = "", + color = "#41535b", + cterm_color = "239", + name = "Diff", + }, + ["doc"] = { + icon = "", + color = "#185abd", + cterm_color = "25", + name = "Doc", + }, + ["dockerfile"] = { + icon = "", + color = "#0087c9", + cterm_color = "32", + name = "Dockerfile", + }, + ["drl"] = { + icon = "", + color = "#ffafaf", + cterm_color = "217", + name = "Drools", + }, + ["dropbox"] = { + icon = "", + color = "#0061FE", + cterm_color = "27", + name = "Dropbox", + }, + ["dump"] = { + icon = "", + color = "#dad8d8", + cterm_color = "253", + name = "Dump", + }, + ["edn"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Edn", + }, + ["eex"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Eex", + }, + ["ejs"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Ejs", + }, + ["elm"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Elm", + }, + ["epp"] = { + icon = "", + color = "#FFA61A", + cterm_color = "214", + name = "Epp", + }, + ["erb"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Erb", + }, + ["erl"] = { + icon = "", + color = "#B83998", + cterm_color = "132", + name = "Erl", + }, + ["ex"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Ex", + }, + ["exs"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Exs", + }, + ["f#"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Fsharp", + }, + ["favicon.ico"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Favicon", + }, + ["fnl"] = { + icon = "", + color = "#fff3d7", + cterm_color = "230", + name = "Fennel", + }, + ["fish"] = { + icon = "", + color = "#4d5a5e", + cterm_color = "240", + name = "Fish", + }, + ["fs"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Fs", + }, + ["fsi"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Fsi", + }, + ["fsscript"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Fsscript", + }, + ["fsx"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Fsx", + }, + ["gd"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "GDScript", + }, + ["gemspec"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Gemspec", + }, + ["gif"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Gif", + }, + ["git"] = { + icon = "", + color = "#F14C28", + cterm_color = "202", + name = "GitLogo", + }, + ["glb"] = { + icon = "", + color = "#FFB13B", + cterm_color = "215", + name = "BinaryGLTF", + }, + ["go"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Go", + }, + ["godot"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "GodotProject", + }, + ["graphql"] = { + icon = "", + color = "#e535ab", + cterm_color = "169", + name = "GraphQL", + }, + ["gruntfile"] = { + icon = "", + color = "#e37933", + cterm_color = "173", + name = "Gruntfile", + }, + ["gulpfile"] = { + icon = "", + color = "#cc3e44", + cterm_color = "167", + name = "Gulpfile", + }, + ["h"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "H", + }, + ["haml"] = { + icon = "", + color = "#eaeae1", + cterm_color = "254", + name = "Haml", + }, + ["hbs"] = { + icon = "", + color = "#f0772b", + cterm_color = "208", + name = "Hbs", + }, + ["heex"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Heex", + }, + ["hh"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Hh", + }, + ["hpp"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Hpp", + }, + ["hrl"] = { + icon = "", + color = "#B83998", + cterm_color = "132", + name = "Hrl", + }, + ["hs"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Hs", + }, + ["htm"] = { + icon = "", + color = "#e34c26", + cterm_color = "166", + name = "Htm", + }, + ["html"] = { + icon = "", + color = "#e44d26", + cterm_color = "166", + name = "Html", + }, + ["hxx"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Hxx", + }, + ["ico"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Ico", + }, + ["import"] = { + icon = "", + color = "#ECECEC", + cterm_color = "255", + name = "ImportConfiguration", + }, + ["ini"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "Ini", + }, + ["java"] = { + icon = "", + color = "#cc3e44", + cterm_color = "167", + name = "Java", + }, + ["jl"] = { + icon = "", + color = "#a270ba", + cterm_color = "133", + name = "Jl", + }, + ["jpeg"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Jpeg", + }, + ["jpg"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Jpg", + }, + ["js"] = { + icon = "", + color = "#efd81d", + cterm_color = "220", + name = "Js", + }, + ["json"] = { + icon = "ﬥ", + color = "#cbcb41", + cterm_color = "185", + name = "Json", + }, + ["json5"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "Json5", + }, + ["jsx"] = { + icon = "ﰆ", + color = "#519aba", + cterm_color = "67", + name = "Jsx", + }, + ["ksh"] = { + icon = "", + color = "#4d5a5e", + cterm_color = "240", + name = "Ksh", + }, + ["kt"] = { + icon = "", + color = "#F88A02", + cterm_color = "208", + name = "Kotlin", + }, + ["kts"] = { + icon = "", + color = "#F88A02", + cterm_color = "208", + name = "KotlinScript", + }, + ["leex"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Leex", + }, + ["less"] = { + icon = "", + color = "#563d7c", + cterm_color = "60", + name = "Less", + }, + ["lhs"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Lhs", + }, + ["LICENSE"] = { + icon = "", + color = "#ff5722", + cterm_color = "202", + name = "License", + }, + ["lua"] = { + icon = "", + color = "#51a0cf", + cterm_color = "74", + name = "Lua", + }, + ["luau"] = { + icon = "", + color = "#51a0cf", + cterm_color = "74", + name = "Luau", + }, + ["makefile"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "Makefile", + }, + ["markdown"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Markdown", + }, + ["material"] = { + icon = "", + color = "#B83998", + cterm_color = "132", + name = "Material", + }, + ["md"] = { + icon = "", + color = "#42a5f5", + cterm_color = "75", + name = "Md", + }, + ["mdx"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Mdx", + }, + ["mint"] = { + icon = "", + color = "#87c095", + cterm_color = "108", + name = "Mint", + }, + ["mix.lock"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "MixLock", + }, + ["mjs"] = { + icon = "", + color = "#f1e05a", + cterm_color = "221", + name = "Mjs", + }, + ["ml"] = { + icon = "λ", + color = "#e37933", + cterm_color = "173", + name = "Ml", + }, + ["mli"] = { + icon = "λ", + color = "#e37933", + cterm_color = "173", + name = "Mli", + }, + ["mo"] = { + icon = "∞", + color = "#9772FB", + cterm_color = "99", + name = "Motoko", + }, + ["mustache"] = { + icon = "", + color = "#e37933", + cterm_color = "173", + name = "Mustache", + }, + ["nim"] = { + icon = "", + color = "#f3d400", + cterm_color = "220", + name = "Nim", + }, + ["nix"] = { + icon = "", + color = "#7ebae4", + cterm_color = "110", + name = "Nix", + }, + ["node_modules"] = { + icon = "", + color = "#E8274B", + cterm_color = "161", + name = "NodeModules", + }, + ["opus"] = { + icon = "", + color = "#F88A02", + cterm_color = "208", + name = "OPUS", + }, + ["otf"] = { + icon = "", + color = "#ECECEC", + cterm_color = "255", + name = "OpenTypeFont", + }, + ["package.json"] = { + icon = "", + color = "#8bc34a", + cterm_color = "113", + name = "PackageJson", + }, + ["package-lock.json"] = { + icon = "", + color = "#7a0d21", + cterm_color = "1", + name = "PackageLockJson", + }, + ["pck"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "PackedResource", + }, + ["pdf"] = { + icon = "", + color = "#b30b00", + cterm_color = "124", + name = "Pdf", + }, + ["php"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Php", + }, + ["pl"] = { + icon = "﨩", + color = "#9575cd", + cterm_color = "104", + name = "Pl", + }, + ["pm"] = { + icon = "﨩", + color = "#9575cd", + cterm_color = "104", + name = "Pm", + }, + ["png"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Png", + }, + ["pp"] = { + icon = "", + color = "#FFA61A", + cterm_color = "214", + name = "Pp", + }, + ["ppt"] = { + icon = "", + color = "#cb4a32", + cterm_color = "167", + name = "Ppt", + }, + ["pro"] = { + icon = "", + color = "#e4b854", + cterm_color = "179", + name = "Prolog", + }, + ["Procfile"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "Procfile", + }, + ["ps1"] = { + icon = "", + color = "#4d5a5e", + cterm_color = "240", + name = "PromptPs1", + }, + ["psb"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Psb", + }, + ["psd"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Psd", + }, + ["py"] = { + icon = "", + color = "#ffbc03", + cterm_color = "214", + name = "Py", + }, + ["pyc"] = { + icon = "", + color = "#ffe291", + cterm_color = "222", + name = "Pyc", + }, + ["pyd"] = { + icon = "", + color = "#ffe291", + cterm_color = "222", + name = "Pyd", + }, + ["pyo"] = { + icon = "", + color = "#ffe291", + cterm_color = "222", + name = "Pyo", + }, + ["query"] = { + icon = "", + color = "#90a850", + cterm_color = "107", + name = "Query", + }, + ["r"] = { + icon = "ﳒ", + color = "#358a5b", + cterm_color = "65", + name = "R", + }, + ["rake"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Rake", + }, + ["rakefile"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Rakefile", + }, + ["rb"] = { + icon = "", + color = "#701516", + cterm_color = "1", + name = "Rb", + }, + ["rlib"] = { + icon = "", + color = "#dea584", + cterm_color = "180", + name = "Rlib", + }, + ["rmd"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Rmd", + }, + ["rproj"] = { + icon = "鉶", + color = "#358a5b", + cterm_color = "65", + name = "Rproj", + }, + ["rs"] = { + icon = "", + color = "#dea584", + cterm_color = "180", + name = "Rs", + }, + ["rss"] = { + icon = "", + color = "#FB9D3B", + cterm_color = "215", + name = "Rss", + }, + ["sass"] = { + icon = "", + color = "#f55385", + cterm_color = "204", + name = "Sass", + }, + ["sbt"] = { + icon = "", + color = "#cc3e44", + cterm_color = "167", + name = "sbt", + }, + ["scala"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Scala", + }, + ["scm"] = { + icon = "ﬦ", + color = "#000000", + cterm_color = "16", + name = "Scheme", + }, + ["scss"] = { + icon = "", + color = "#f55385", + cterm_color = "204", + name = "Scss", + }, + ["sh"] = { + icon = "", + color = "#ff7043", + cterm_color = "203", + name = "Sh", + }, + ["sig"] = { + icon = "λ", + color = "#e37933", + cterm_color = "173", + name = "Sig", + }, + ["slim"] = { + icon = "", + color = "#e34c26", + cterm_color = "166", + name = "Slim", + }, + ["sln"] = { + icon = "", + color = "#854CC7", + cterm_color = "98", + name = "Sln", + }, + ["sml"] = { + icon = "λ", + color = "#e37933", + cterm_color = "173", + name = "Sml", + }, + ["sql"] = { + icon = "", + color = "#dad8d8", + cterm_color = "253", + name = "Sql", + }, + ["sqlite"] = { + icon = "", + color = "#dad8d8", + cterm_color = "253", + name = "Sql", + }, + ["sqlite3"] = { + icon = "", + color = "#dad8d8", + cterm_color = "253", + name = "Sql", + }, + ["styl"] = { + icon = "", + color = "#8dc149", + cterm_color = "107", + name = "Styl", + }, + ["sublime"] = { + icon = "", + color = "#e37933", + cterm_color = "173", + name = "Suo", + }, + ["suo"] = { + icon = "", + color = "#854CC7", + cterm_color = "98", + name = "Suo", + }, + ["sv"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "SystemVerilog", + }, + ["svelte"] = { + icon = "", + color = "#ff3e00", + cterm_color = "202", + name = "Svelte", + }, + ["svh"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "SystemVerilog", + }, + ["svg"] = { + icon = "ﰟ", + color = "#FFB13B", + cterm_color = "215", + name = "Svg", + }, + ["swift"] = { + icon = "ﯣ", + color = "#e37933", + cterm_color = "173", + name = "Swift", + }, + ["t"] = { + icon = "", + color = "#519aba", + cterm_color = "67", + name = "Tor", + }, + ["tbc"] = { + icon = "﯑", + color = "#1e5cb3", + cterm_color = "25", + name = "Tcl", + }, + ["tcl"] = { + icon = "﯑", + color = "#1e5cb3", + cterm_color = "25", + name = "Tcl", + }, + ["terminal"] = { + icon = "", + color = "#31B53E", + cterm_color = "71", + name = "Terminal", + }, + ["tex"] = { + icon = "ﭨ", + color = "#3D6117", + cterm_color = "58", + name = "Tex", + }, + ["toml"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "Toml", + }, + ["tres"] = { + icon = "", + color = "#cbcb41", + cterm_color = "185", + name = "TextResource", + }, + ["ts"] = { + icon = "ﯤ", + color = "#519aba", + cterm_color = "67", + name = "Ts", + }, + ["tscn"] = { + icon = "", + color = "#a074c4", + cterm_color = "140", + name = "TextScene", + }, + ["tsx"] = { + icon = "ﰆ", + color = "#519aba", + cterm_color = "67", + name = "Tsx", + }, + ["twig"] = { + icon = "", + color = "#8dc149", + cterm_color = "107", + name = "Twig", + }, + ["txt"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Txt", + }, + ["v"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Verilog", + }, + ["vh"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Verilog", + }, + ["vhd"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "VHDL", + }, + ["vhdl"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "VHDL", + }, + ["vim"] = { + icon = "", + color = "#019833", + cterm_color = "29", + name = "Vim", + }, + ["vue"] = { + icon = "﵂", + color = "#8dc149", + cterm_color = "107", + name = "Vue", + }, + ["webmanifest"] = { + icon = "", + color = "#f1e05a", + cterm_color = "221", + name = "Webmanifest", + }, + ["webp"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Webp", + }, + ["webpack"] = { + icon = "ﰩ", + color = "#519aba", + cterm_color = "67", + name = "Webpack", + }, + ["xcplayground"] = { + icon = "", + color = "#e37933", + cterm_color = "173", + name = "XcPlayground", + }, + ["xls"] = { + icon = "", + color = "#207245", + cterm_color = "23", + name = "Xls", + }, + ["xml"] = { + icon = "謹", + color = "#e37933", + cterm_color = "173", + name = "Xml", + }, + ["xul"] = { + icon = "", + color = "#e37933", + cterm_color = "173", + name = "Xul", + }, + ["yaml"] = { + icon = "", + color = "#6d8086", + cterm_color = "66", + name = "Yaml", + }, + ["yml"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Yml", + }, + ["zig"] = { + icon = "", + color = "#f69a1b", + cterm_color = "208", + name = "Zig", + }, + ["zsh"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Zsh", + }, + ["sol"] = { + icon = "ﲹ", + color = "#519aba", + cterm_color = "67", + name = "Solidity", + }, + [".env"] = { + icon = "", + color = "#faf743", + cterm_color = "227", + name = "Env", + }, + ["prisma"] = { + icon = "卑", + color = "#ffffff", + cterm_color = "231", + name = "Prisma", + }, + ["lock"] = { + icon = "", + color = "#ffd54f", + cterm_color = "221", + name = "Lock", + }, + ["log"] = { + icon = "", + color = "#ffffff", + cterm_color = "231", + name = "Log", + }, + -- More + [".svgrrc"] = { + icon = "ﰆ", + color = "#ffb300", + cterm_color = "214", + name = "Svgrrc", + }, + ["rar"] = { + icon = "遲", + color = "#afb42b", + cterm_color = "142", + name = "Rar", + }, + ["zip"] = { + icon = "", + color = "#afb42b", + cterm_color = "142", + name = "Zip", + }, + ["xz"] = { + icon = "", + color = "#afb42b", + cterm_color = "142", + name = "Xz", + }, + ["test.js"] = { + icon = "", + color = "#ffca28", + cterm_color = "220", + name = "TestJavascript", + }, + ["test.jsx"] = { + icon = "", + color = "#00bcd4", + cterm_color = "38", + name = "TestJavascriptReact", + }, + ["test.ts"] = { + icon = "", + color = "#00bcd4", + cterm_color = "38", + name = "TestTypescript", + }, + ["ttf"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Ttf", + }, + ["woff"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "WebOpenFontFormat", + }, + ["woff2"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "WebOpenFontFormat", + }, + ["mp3"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Mp3", + }, + ["wav"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Wav", + }, + ["mp4"] = { + icon = "", + color = "#ff9800", + cterm_color = "208", + name = "Mp4", + }, + ["jar"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Jar", + }, + ["class"] = { + icon = "﯈", + color = "#1e88e5", + cterm_color = "32", + name = "JavaClass", + }, + ["xlsx"] = { + icon = "", + color = "#207245", + cterm_color = "23", + name = "Excel", + }, + ["hex"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Hex", + }, + ["bin"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Bin", + }, + ["dat"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Dat", + }, + ["asm"] = { + icon = "ﬧ", + color = "#ff6e40", + cterm_color = "203", + name = "Asm", + }, + ["abc"] = { + icon = "", + color = "#ff5722", + cterm_color = "202", + name = "Abc", + }, + ["ino"] = { + icon = "ﯢ", + color = "#00979c", + cterm_color = "31", + name = "Arduino", + }, + ["babel.config.js"] = { + icon = "", + color = "#fdd835", + cterm_color = "221", + name = "BabelConfig", + }, + ["yarn.lock"] = { + icon = "", + color = "#0288d1", + cterm_color = "32", + name = "YarnLock", + }, + ["yarn-error.log"] = { + icon = "", + color = "#0288d1", + cterm_color = "32", + name = "YarnError", + }, + ["bf"] = { + icon = "", + color = "#ff4081", + cterm_color = "204", + name = "Bf", + }, + ["exe"] = { + icon = "", + color = "#e64a19", + cterm_color = "166", + name = "Exe", + }, + ["docx"] = { + icon = "", + color = "#185abd", + cterm_color = "25", + name = "Docx", + }, + ["rtf"] = { + icon = "", + color = "#89e051", + cterm_color = "113", + name = "Rtf", + }, + ["tif"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Tif", + }, + ["tiff"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Tiff", + }, + ["pptx"] = { + icon = "", + color = "#d14524", + cterm_color = "166", + name = "Pptx", + }, + ["p"] = { + icon = "", + color = "#e4b854", + cterm_color = "179", + name = "P", + }, + [".prettierrc.json"] = { + icon = "", + color = "#ea5e5e", + cterm_color = "167", + name = "Prettier", + }, + [".prettierrc.yml"] = { + icon = "", + color = "#ea5e5e", + cterm_color = "167", + name = "Prettier", + }, + [".prettierrc.yaml"] = { + icon = "", + color = "#ea5e5e", + cterm_color = "167", + name = "Prettier", + }, + [".prettierrc.js"] = { + icon = "", + color = "#ea5e5e", + cterm_color = "167", + name = "Prettier", + }, + [".prettierrc.toml"] = { + icon = "", + color = "#ea5e5e", + cterm_color = "167", + name = "Prettier", + }, + ["obj"] = { + icon = "", + color = "#29b6f6", + cterm_color = "39", + name = "Obj", + }, + ["fbx"] = { + icon = "", + color = "#29b6f6", + cterm_color = "39", + name = "Fbx", + }, + ["deb"] = { + icon = "", + color = "#ff0283", + cterm_color = "198", + name = "Deb", + }, + ["rpm"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "Rpm", + }, + ["robots.txt"] = { + icon = "ﮧ", + color = "#ff5252", + cterm_color = "203", + name = "Robots", + }, + ["robot"] = { + icon = "ﮧ", + color = "#00bfa5", + cterm_color = "37", + name = "Robot", + }, + ["CONTRIBUTING.md"] = { + icon = "", + color = "#ffca28", + cterm_color = "220", + name = "CONTRIBUTING.md", + }, + ["README.md"] = { + icon = "", + color = "#42a5f5", + cterm_color = "75", + name = "README.md", + }, + ["razor"] = { + icon = "", + color = "#42a5f5", + cterm_color = "75", + name = "razor", + }, + ["sc"] = { + icon = "", + color = "#f44336", + cterm_color = "203", + name = "sc", + }, + ["key"] = { + icon = "", + color = "#26a69a", + cterm_color = "36", + name = "Key", + }, + ["gmi"] = { + icon = "爵", + color = "#81c784", + cterm_color = "114", + name = "gmi", + }, + ["gmni"] = { + icon = "爵", + color = "#81c784", + cterm_color = "114", + name = "gmni", + }, + ["gemini"] = { + icon = "爵", + color = "#81c784", + cterm_color = "114", + name = "gemini", + }, + ["yang"] = { + icon = "ﭾ", + color = "#42a5f5", + cterm_color = "75", + name = "Yang", + }, + ["windi.config.ts"] = { + icon = "煮", + color = "#42a5f5", + cterm_color = "75", + name = "windi.config.ts", + }, + ["windi.config.js"] = { + icon = "煮", + color = "#42a5f5", + cterm_color = "75", + name = "windi.config.js", + }, + ["xaml"] = { + icon = "ﭲ", + color = "#42a5f5", + cterm_color = "75", + name = "xaml", + }, + ["lib"] = { + icon = "", + color = "#8bc34a", + cterm_color = "113", + name = "Lib", + }, + ["liquid"] = { + icon = "懲", + color = "#42a5f5", + cterm_color = "75", + name = "Liquid", + }, + ["vite.config.js"] = { + icon = "", + color = "#ffab00", + cterm_color = "214", + name = "vite.config.js", + }, + ["nuxt.config.js"] = { + icon = "行", + color = "#00e676", + cterm_color = "42", + name = "nuxt.config.js", + }, + ["todo"] = { + icon = "", + color = "#7cb342", + cterm_color = "107", + name = "todo", + }, + ["http"] = { + icon = "爵", + color = "#e53935", + cterm_color = "167", + name = "http", + }, + ["cake"] = { + icon = "", + color = "#ff7043", + cterm_color = "203", + name = "cake", + }, + }, + -- globally enable different highlight colors per icon (default to true) + -- if set to false all icons will have the default icon's color + color_icons = true, + -- globally enable default icons (default to false) + -- will get overriden by `get_icons` option + default = true, +} diff --git a/lua/user/whichkey.lua b/lua/user/whichkey.lua new file mode 100644 index 0000000..a36d7a5 --- /dev/null +++ b/lua/user/whichkey.lua @@ -0,0 +1,227 @@ +local status_ok, which_key = pcall(require, "which-key") +if not status_ok then + return +end + +local setup = { + plugins = { + marks = true, -- shows a list of your marks on ' and ` + registers = true, -- shows your registers on " in NORMAL or in INSERT mode + spelling = { + enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions + suggestions = 20, -- how many suggestions should be shown in the list? + }, + -- the presets plugin, adds help for a bunch of default keybindings in Neovim + -- No actual key bindings are created + presets = { + operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion + motions = true, -- adds help for motions + text_objects = true, -- help for text objects triggered after entering an operator + windows = true, -- default bindings on + nav = true, -- misc bindings to work with windows + z = true, -- bindings for folds, spelling and others prefixed with z + g = true, -- bindings for prefixed with g + }, + }, + -- add operators that will trigger motion and text object completion + -- to enable all native operators, set the preset / operators plugin above + -- operators = { gc = "Comments" }, + key_labels = { + -- override the label used to display some keys. It doesn't effect WK in any other way. + -- For example: + -- [""] = "SPC", + -- [""] = "RET", + -- [""] = "TAB", + }, + icons = { + breadcrumb = "»", -- symbol used in the command line area that shows your active key combo + separator = "➜", -- symbol used between a key and it's label + group = "+", -- symbol prepended to a group + }, + popup_mappings = { + scroll_down = "", -- binding to scroll down inside the popup + scroll_up = "", -- binding to scroll up inside the popup + }, + window = { + border = "rounded", -- none, single, double, shadow + position = "bottom", -- bottom, top + margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] + padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] + winblend = 0, + }, + layout = { + height = { min = 4, max = 25 }, -- min and max height of the columns + width = { min = 20, max = 50 }, -- min and max width of the columns + spacing = 3, -- spacing between columns + align = "left", -- align columns left, center or right + }, + ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label + hidden = { "", "", "", "", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate + show_help = true, -- show help message on the command line when the popup is visible + triggers = "auto", -- automatically setup triggers + -- triggers = {""} -- or specify a list manually + triggers_blacklist = { + -- list of mode / prefixes that should never be hooked by WhichKey + -- this is mostly relevant for key maps that start with a native binding + -- most people should not need to change this + i = { "j", "k" }, + v = { "j", "k" }, + }, +} + +local opts = { + mode = "n", -- NORMAL mode + prefix = "", + buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings + silent = true, -- use `silent` when creating keymaps + noremap = true, -- use `noremap` when creating keymaps + nowait = true, -- use `nowait` when creating keymaps +} + +local opts2 = { + mode = "v", -- NORMAL mode + prefix = "", + buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings + silent = true, -- use `silent` when creating keymaps + noremap = true, -- use `noremap` when creating keymaps + nowait = true, -- use `nowait` when creating keymaps +} + +local trn = "" +if vim.fn.has("win32") then + trn = "pwsh" +end + +local mappings2 = { + ["/"] = { "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", "Commet Block" }, +} +local mappings = { + ["a"] = { "Alpha", "Alpha" }, + ["b"] = { + "lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})", + "Buffers", + }, + --["e"] = { "NvimTreeToggle", "Explorer" }, + ["e"] = { "NvimTreeToggle", "Explorer" }, + ["w"] = { "w!", "Save" }, + ["q"] = { "q!", "Quit" }, + ["c"] = { "Bdelete!", "Close Buffer" }, + ["h"] = { "nohlsearch", "No Highlight" }, + ["f"] = { + "Telescope find_files ", + "Find files", + }, + ["F"] = { "Telescope live_grep theme=ivy", "Find Text" }, + ["P"] = { "lua require('telescope').extensions.projects.projects()", "Projects" }, + + ["/"] = { + function() + require("Comment.api").toggle.linewise.current() + end, + "Coment line", + }, + p = { + name = "Packer", + c = { "PackerCompile", "Compile" }, + i = { "PackerInstall", "Install" }, + s = { "PackerSync", "Sync" }, + S = { "PackerStatus", "Status" }, + u = { "PackerUpdate", "Update" }, + }, + + g = { + name = "Git", + g = { "lua _LAZYGIT_TOGGLE()", "Lazygit" }, + j = { "lua require 'gitsigns'.next_hunk()", "Next Hunk" }, + k = { "lua require 'gitsigns'.prev_hunk()", "Prev Hunk" }, + l = { "lua require 'gitsigns'.blame_line()", "Blame" }, + p = { "lua require 'gitsigns'.preview_hunk()", "Preview Hunk" }, + r = { "lua require 'gitsigns'.reset_hunk()", "Reset Hunk" }, + R = { "lua require 'gitsigns'.reset_buffer()", "Reset Buffer" }, + s = { "lua require 'gitsigns'.stage_hunk()", "Stage Hunk" }, + u = { + "lua require 'gitsigns'.undo_stage_hunk()", + "Undo Stage Hunk", + }, + o = { "Telescope git_status", "Open changed file" }, + b = { "Telescope git_branches", "Checkout branch" }, + c = { "Telescope git_commits", "Checkout commit" }, + d = { + "Gitsigns diffthis HEAD", + "Diff", + }, + }, + + l = { + name = "LSP", + a = { "lua vim.lsp.buf.code_action()", "Code Action" }, + d = { + "Telescope diagnostics bufnr=0", + "Document Diagnostics", + }, + w = { + "Telescope diagnostics", + "Workspace Diagnostics", + }, + f = { "lua vim.lsp.buf.format{async=true}", "Format" }, + i = { "LspInfo", "Info" }, + I = { "Mason", "Installer Info" }, + j = { + "lua vim.lsp.diagnostic.goto_next()", + "Next Diagnostic", + }, + k = { + "lua vim.lsp.diagnostic.goto_prev()", + "Prev Diagnostic", + }, + l = { "lua vim.lsp.codelens.run()", "CodeLens Action" }, + q = { "lua vim.diagnostic.setloclist()", "Quickfix" }, + r = { "lua vim.lsp.buf.rename()", "Rename" }, + s = { "Telescope lsp_document_symbols", "Document Symbols" }, + S = { + "Telescope lsp_dynamic_workspace_symbols", + "Workspace Symbols", + }, + }, + s = { + name = "Search", + b = { "Telescope git_branches", "Checkout branch" }, + c = { "Telescope colorscheme", "Colorscheme" }, + h = { "Telescope help_tags", "Find Help" }, + M = { "Telescope man_pages", "Man Pages" }, + r = { "Telescope oldfiles", "Open Recent File" }, + R = { "Telescope registers", "Registers" }, + k = { "Telescope keymaps", "Keymaps" }, + C = { "Telescope commands", "Commands" }, + }, + + t = { + name = "Terminal", + n = { "lua _NODE_TOGGLE()", "Node" }, + u = { "lua _NCDU_TOGGLE()", "NCDU" }, + t = { "lua _HTOP_TOGGLE()", "Htop" }, + p = { "lua _PYTHON_TOGGLE()", "Python" }, + f = { "ToggleTerm direction=float" .. trn, "Float" }, + h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, + v = { "ToggleTerm size=80 direction=vertical" .. trn, "Vertical" }, + }, + r = { + name = "Run", + s = { + 'autocmd bufwritepost [^_]*.sass,[^_]*.scss silent exec "!sass %:p %:r.css"', + "Auto Compile Sass", + }, + r = { "RunCode", "Run Code" }, + f = { "RunFile", "Run File" }, + p = { "RunProject", "Run Project" }, + g = { "ToggleTerm size=70 direction=verticalgradle run" .. trn, "Run Gradle" }, + m = { + "ToggleTerm size=70 direction=verticalmvn exec:java -Dexec.mainClass=com.pojokcode.App", + "Run MVN", + }, + }, +} + +which_key.setup(setup) +which_key.register(mappings, opts) +which_key.register(mappings2, opts2) diff --git a/lua/user/winbar.lua b/lua/user/winbar.lua new file mode 100644 index 0000000..cdf9bd9 --- /dev/null +++ b/lua/user/winbar.lua @@ -0,0 +1,151 @@ +local active = true +local icons = require("user.icons") +local excludes = function() + return vim.tbl_contains({ + "help", + "startify", + "dashboard", + "packer", + "neo-tree", + "neogitstatus", + "NvimTree", + "Trouble", + "alpha", + "lir", + "Outline", + "spectre_panel", + "toggleterm", + "DressingSelect", + "Jaq", + "harpoon", + "dap-repl", + "dap-terminal", + "dapui_console", + "dapui_hover", + "lab", + "notify", + "noice", + "", + } or {}, vim.bo.filetype) +end + +local get_filename = function() + local filename = vim.fn.expand("%:t") + local extension = vim.fn.expand("%:e") + local f = require("user.functions") + + if not f.isempty(filename) then + local file_icon, hl_group = require("nvim-web-devicons").get_icon(filename, extension, { default = true }) + + if f.isempty(file_icon) then + file_icon = icons.kind.File + end + + local buf_ft = vim.bo.filetype + + if buf_ft == "dapui_breakpoints" then + file_icon = icons.ui.Bug + end + + if buf_ft == "dapui_stacks" then + file_icon = icons.ui.Stacks + end + + if buf_ft == "dapui_scopes" then + file_icon = icons.ui.Scopes + end + + if buf_ft == "dapui_watches" then + file_icon = icons.ui.Watches + end + + -- if buf_ft == "dapui_console" then + -- file_icon = lvim.icons.ui.DebugConsole + -- end + + local navic_text = vim.api.nvim_get_hl_by_name("Normal", true) + vim.api.nvim_set_hl(0, "Winbar", { fg = navic_text.foreground }) + + return " " .. "%#" .. hl_group .. "#" .. file_icon .. "%*" .. " " .. "%#Winbar#" .. filename .. "%*" + end +end + +local get_gps = function() + local status_gps_ok, gps = pcall(require, "nvim-navic") + if not status_gps_ok then + return "" + end + + local status_ok, gps_location = pcall(gps.get_location, {}) + if not status_ok then + return "" + end + + if not gps.is_available() or gps_location == "error" then + return "" + end + + if not require("user.functions").isempty(gps_location) then + return "%#NavicSeparator#" .. icons.ui.ChevronRight .. "%* " .. gps_location + else + return "" + end +end + +local get_winbar = function() + if excludes() then + return + end + local f = require("user.functions") + local value = get_filename() + + local gps_added = false + if not f.isempty(value) then + local gps_value = get_gps() + value = value .. " " .. gps_value + if not f.isempty(gps_value) then + gps_added = true + end + end + + if not f.isempty(value) and f.get_buf_option("mod") then + -- TODO: replace with circle + local mod = "%#LspCodeLens#" .. icons.ui.Circle .. "%*" + if gps_added then + value = value .. " " .. mod + else + value = value .. mod + end + end + + local num_tabs = #vim.api.nvim_list_tabpages() + + if num_tabs > 1 and not f.isempty(value) then + local tabpage_number = tostring(vim.api.nvim_tabpage_get_number(0)) + value = value .. "%=" .. tabpage_number .. "/" .. tostring(num_tabs) + end + + local status_ok, _ = pcall(vim.api.nvim_set_option_value, "winbar", value, { scope = "local" }) + if not status_ok then + return + end +end + +vim.api.nvim_create_augroup("_winbar", {}) +if vim.fn.has("nvim-0.8") == 1 then + vim.api.nvim_create_autocmd( + { "CursorHoldI", "CursorHold", "BufWinEnter", "BufFilePost", "InsertEnter", "BufWritePost", "TabClosed" }, + { + group = "_winbar", + callback = function() + if active then + local status_ok, _ = pcall(vim.api.nvim_buf_get_var, 0, "lsp_floating_window") + if not status_ok then + -- TODO: + get_winbar() + end + end + end, + } + ) +end diff --git a/lua/user/yanky.lua b/lua/user/yanky.lua new file mode 100644 index 0000000..68f6901 --- /dev/null +++ b/lua/user/yanky.lua @@ -0,0 +1,17 @@ +local status_ok, yanky = pcall(require, "yanky") +if not status_ok then + return +end +yanky.setup({ + ring = { + history_length = 50, + storage = "memory", + }, + preserve_cursor_position = { + enabled = false, + }, +}) + +-- cycle through the yank history, only work after paste +vim.keymap.set("n", "[y", "(YankyCycleForward)") +vim.keymap.set("n", "]y", "(YankyCycleBackward)")