kylo252 преди 3 години
родител
ревизия
2c520cf555

+ 6 - 0
lua/lvim/config/init.lua

@@ -40,6 +40,12 @@ function M:init()
     custom_section = {},
     footer = {},
   }
+
+  lvim.builtin.luasnip = {
+    sources = {
+      friendly_snippets = true,
+    },
+  }
 end
 
 local function handle_deprecated_settings()

+ 2 - 2
lua/lvim/core/autocmds.lua

@@ -118,11 +118,11 @@ function M.configure_format_on_save()
 end
 
 function M.toggle_format_on_save()
-  local exists, _ = pcall(vim.api.nvim_get_autocmds, {
+  local exists, autocmds = pcall(vim.api.nvim_get_autocmds, {
     group = "lsp_format_on_save",
     event = "BufWritePre",
   })
-  if not exists then
+  if not exists or #autocmds == 0 then
     M.enable_format_on_save()
   else
     M.disable_format_on_save()

+ 24 - 10
lua/lvim/core/bufferline.lua

@@ -142,26 +142,42 @@ M.setup = function()
   end
 end
 
+--stylua: ignore
+
 -- Common kill function for bdelete and bwipeout
 -- credits: based on bbye and nvim-bufdel
----@param kill_command string defaults to "bd"
+---@param kill_command? string defaults to "bd"
 ---@param bufnr? number defaults to the current buffer
 ---@param force? boolean defaults to false
 function M.buf_kill(kill_command, bufnr, force)
+  kill_command = kill_command or "bd"
+
   local bo = vim.bo
   local api = vim.api
+  local fmt = string.format
+  local fnamemodify = vim.fn.fnamemodify
 
   if bufnr == 0 or bufnr == nil then
     bufnr = api.nvim_get_current_buf()
   end
 
-  kill_command = kill_command or "bd"
+  local bufname = api.nvim_buf_get_name(bufnr)
 
-  -- If buffer is modified and force isn't true, print error and abort
-  if not force and bo[bufnr].modified then
-    return api.nvim_err_writeln(
-      string.format("No write since last change for buffer %d (set force to true to override)", bufnr)
-    )
+  if not force then
+    local warning
+    if bo[bufnr].modified then
+      warning = fmt([[No write since last change for (%s)]], fnamemodify(bufname, ":t"))
+    elseif api.nvim_buf_get_option(bufnr, "buftype") == "terminal" then
+      warning = fmt([[Terminal %s will be killed]], bufname)
+    end
+    if warning then
+      vim.ui.input({
+        prompt = string.format([[%s. Close it anyway? [y]es or [n]o (default: no): ]], warning),
+      }, function(choice)
+        if choice:match "ye?s?" then force = true end
+      end)
+      if not force then return end
+    end
   end
 
   -- Get list of windows IDs with the buffer to close
@@ -169,9 +185,7 @@ function M.buf_kill(kill_command, bufnr, force)
     return api.nvim_win_get_buf(win) == bufnr
   end, api.nvim_list_wins())
 
-  if #windows == 0 then
-    return
-  end
+  if #windows == 0 then return end
 
   if force then
     kill_command = kill_command .. "!"

+ 1 - 1
lua/lvim/core/log.lua

@@ -52,7 +52,7 @@ function Log:init()
           processors = {
             structlog.processors.Namer(),
             structlog.processors.StackWriter({ "line", "file" }, { max_parents = 3, stack_level = 2 }),
-            structlog.processors.Timestamper "%H:%M:%S",
+            structlog.processors.Timestamper "%F %H:%M:%S",
           },
           formatter = structlog.formatters.Format( --
             "%s [%-5s] %s: %-30s",

+ 30 - 30
lua/lvim/core/nvimtree.lua

@@ -2,7 +2,6 @@ local M = {}
 local Log = require "lvim.core.log"
 
 function M.config()
-  local vim_show_icons = lvim.use_icons and 1 or 0
   lvim.builtin.nvimtree = {
     active = true,
     on_config_done = nil,
@@ -76,7 +75,35 @@ function M.config()
         },
         icons = {
           webdev_colors = lvim.use_icons,
+          show = {
+            git = lvim.use_icons,
+            folder = lvim.use_icons,
+            file = lvim.use_icons,
+            folder_arrow = lvim.use_icons,
+          },
+          glyphs = {
+            default = "",
+            symlink = "",
+            git = {
+              unstaged = "",
+              staged = "S",
+              unmerged = "",
+              renamed = "➜",
+              deleted = "",
+              untracked = "U",
+              ignored = "◌",
+            },
+            folder = {
+              default = "",
+              open = "",
+              empty = "",
+              empty_open = "",
+              symlink = "",
+            },
+          },
         },
+        highlight_git = true,
+        root_folder_modifier = ":t",
       },
       filters = {
         dotfiles = false,
@@ -120,34 +147,6 @@ function M.config()
         },
       },
     },
-    show_icons = {
-      git = vim_show_icons,
-      folders = vim_show_icons,
-      files = vim_show_icons,
-      folder_arrows = vim_show_icons,
-    },
-    git_hl = 1,
-    root_folder_modifier = ":t",
-    icons = {
-      default = "",
-      symlink = "",
-      git = {
-        unstaged = "",
-        staged = "S",
-        unmerged = "",
-        renamed = "➜",
-        deleted = "",
-        untracked = "U",
-        ignored = "◌",
-      },
-      folder = {
-        default = "",
-        open = "",
-        empty = "",
-        empty_open = "",
-        symlink = "",
-      },
-    },
   }
   lvim.builtin.which_key.mappings["e"] = { "<cmd>NvimTreeToggle<CR>", "Explorer" }
 end
@@ -165,7 +164,7 @@ function M.setup()
 
   -- Implicitly update nvim-tree when project module is active
   if lvim.builtin.project.active then
-    lvim.builtin.nvimtree.respect_buf_cwd = 1
+    lvim.builtin.nvimtree.setup.respect_buf_cwd = true
     lvim.builtin.nvimtree.setup.update_cwd = true
     lvim.builtin.nvimtree.setup.update_focused_file = { enable = true, update_cwd = true }
   end
@@ -173,6 +172,7 @@ function M.setup()
   local function telescope_find_files(_)
     require("lvim.core.nvimtree").start_telescope "find_files"
   end
+
   local function telescope_live_grep(_)
     require("lvim.core.nvimtree").start_telescope "live_grep"
   end

+ 5 - 4
lua/lvim/plugins.lua

@@ -58,19 +58,20 @@ local core_plugins = {
     end,
     requires = {
       "L3MON4D3/LuaSnip",
-      "rafamadriz/friendly-snippets",
     },
   },
   {
     "rafamadriz/friendly-snippets",
+    disable = not lvim.builtin.luasnip.sources.friendly_snippets,
   },
   {
     "L3MON4D3/LuaSnip",
     config = function()
       local utils = require "lvim.utils"
-      local paths = {
-        utils.join_paths(get_runtime_dir(), "site", "pack", "packer", "start", "friendly-snippets"),
-      }
+      local paths = {}
+      if lvim.builtin.luasnip.sources.friendly_snippets then
+        paths[#paths + 1] = utils.join_paths(get_runtime_dir(), "site", "pack", "packer", "start", "friendly-snippets")
+      end
       local user_snippets = utils.join_paths(get_config_dir(), "snippets")
       if utils.is_directory(user_snippets) then
         paths[#paths + 1] = user_snippets

+ 24 - 24
snapshots/default.json

@@ -1,18 +1,18 @@
 {
   "Comment.nvim": {
-    "commit": "cc87c89"
+    "commit": "bdf9ca6"
   },
   "FixCursorHold.nvim": {
     "commit": "1bfb32e"
   },
   "LuaSnip": {
-    "commit": "08b06c3"
+    "commit": "52f4aed"
   },
   "alpha-nvim": {
     "commit": "4781fcf"
   },
   "bufferline.nvim": {
-    "commit": "82e3598"
+    "commit": "c78b3ec"
   },
   "cmp-buffer": {
     "commit": "12463cf"
@@ -30,82 +30,82 @@
     "commit": "bbda2b0"
   },
   "friendly-snippets": {
-    "commit": "02c92e3"
+    "commit": "974d792"
   },
   "gitsigns.nvim": {
-    "commit": "44372ff"
+    "commit": "27aeb2e"
   },
   "lua-dev.nvim": {
     "commit": "54149d1"
   },
   "lualine.nvim": {
-    "commit": "c12b167"
+    "commit": "3362b28"
   },
   "nlsp-settings.nvim": {
-    "commit": "7136038"
+    "commit": "f27faa4"
   },
   "null-ls.nvim": {
-    "commit": "af19226"
+    "commit": "474372a"
   },
   "nvim-autopairs": {
-    "commit": "aea9131"
+    "commit": "b9cc0a2"
   },
   "nvim-cmp": {
     "commit": "033a817"
   },
   "nvim-dap": {
-    "commit": "a9c49a5"
+    "commit": "688cb52"
   },
   "nvim-lsp-installer": {
-    "commit": "a655bdd"
+    "commit": "ce70a78"
   },
   "nvim-lspconfig": {
-    "commit": "b86a37c"
+    "commit": "eb03999"
   },
   "nvim-notify": {
-    "commit": "c6ca279"
+    "commit": "8252aae"
   },
   "nvim-tree.lua": {
-    "commit": "b2ba6de"
+    "commit": "1caca62"
   },
   "nvim-treesitter": {
-    "commit": "29b0ea8"
+    "commit": "178f24e"
   },
   "nvim-ts-context-commentstring": {
     "commit": "8834375"
   },
   "nvim-web-devicons": {
-    "commit": "0c5b6d1"
+    "commit": "8d2c533"
   },
   "onedarker.nvim": {
     "commit": "b00dd21"
   },
   "packer.nvim": {
-    "commit": "4dedd3b"
+    "commit": "00ec5ad"
   },
   "plenary.nvim": {
-    "commit": "1da13ad"
+    "commit": "54b2e3d"
   },
   "popup.nvim": {
     "commit": "b7404d3"
   },
   "project.nvim": {
-    "commit": "612443b"
+    "commit": "541115e"
   },
   "schemastore.nvim": {
-    "commit": "675ec50"
+    "commit": "3a15757"
   },
   "structlog.nvim": {
-    "commit": "6f1403a"
+    "commit": "232a8e2"
   },
   "telescope-fzf-native.nvim": {
-    "commit": "2330a7e"
+    "commit": "f0dba7d"
   },
   "telescope.nvim": {
-    "commit": "1a91238"
+    "commit": "e6b69b1"
   },
   "toggleterm.nvim": {
-    "commit": "c525442"
+    "commit": "5bf839a"
   },
   "which-key.nvim": {
     "commit": "f03a259"

+ 1 - 1
utils/installer/config.example.lua

@@ -61,7 +61,7 @@ lvim.builtin.alpha.mode = "dashboard"
 lvim.builtin.notify.active = true
 lvim.builtin.terminal.active = true
 lvim.builtin.nvimtree.setup.view.side = "left"
-lvim.builtin.nvimtree.show_icons.git = 0
+lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
 
 -- if you don't want all the parsers change this to a table of the ones you want
 lvim.builtin.treesitter.ensure_installed = {

+ 2 - 2
utils/installer/config_win.example.lua

@@ -85,8 +85,8 @@ lvim.builtin.nvimtree.setup.git.enable = false
 lvim.builtin.nvimtree.setup.update_cwd = false
 lvim.builtin.nvimtree.setup.update_focused_file.update_cwd = false
 lvim.builtin.nvimtree.setup.view.side = "left"
-lvim.builtin.nvimtree.git_hl = false
-lvim.builtin.nvimtree.show_icons.git = 0
+lvim.builtin.nvimtree.setup.renderer.highlight_git = false
+lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
 
 -- if you don't want all the parsers change this to a table of the ones you want
 lvim.builtin.treesitter.ensure_installed = {