Skip to content

lvim-tech/lvim-qf-loc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LVIM QF AND LOC

Improvements for neovim quickfix and location

  • Navigation (prev / next) via floating popup
  • Switch between quickfix / location lists
  • Delete quickfix / location lists
  • Save and load lists to/from JSON file
  • Diagnostics in quickfix
  • Floating tabbed UI powered by lvim-utils (optional, falls back gracefully)

lvim-logo

License

Requirements

  • Neovim 0.9+
  • lvim-utils (optional — enables the floating tabbed UI)

Installation

{
    "lvim-tech/lvim-qf-loc",
    dependencies = {
        "lvim-tech/lvim-utils",
    },
    config = function()
        require("lvim-qf-loc").setup({ ... })
    end,
}

Native (vim.pack / packadd)

vim.pack.add({
    { src = "https://github.com/lvim-tech/lvim-utils" },
    { src = "https://github.com/lvim-tech/lvim-qf-loc" },
})

require("lvim-qf-loc").setup({ ... })
use({
    "lvim-tech/lvim-qf-loc",
    requires = {
        { "lvim-tech/lvim-utils" },
    },
    config = function()
        require("lvim-qf-loc").setup({ ... })
    end,
})

Commands

Two commands with tab-completion for subcommands:

:LvimQf [subcommand]

Subcommand Description
navigate Open / Close / Next / Previous
switch Switch to a different quickfix list
delete Delete a quickfix list
storage Save / Load lists to/from JSON
diagnostics Load diagnostics into quickfix

:LvimLoc [subcommand]

Subcommand Description
navigate Open / Close / Next / Previous
switch Switch to a different location list
delete Delete a location list
storage Save / Load lists to/from JSON

Running the command without a subcommand opens the popup on the first tab. Running it with a subcommand opens the popup with that tab active.

Default configuration

require("lvim-qf-loc").setup({
    notify = true,
    min_height = 1,
    max_height = 15,

    -- Icons shown on each popup tab (requires a Nerd Font)
    tabs = {
        navigate = { icon = "󰜌" },
        switch = { icon = "󰒊" },
        delete = { icon = "󰆴" },
        storage = { icon = "󰆼" },
        diagnostics = { icon = "󰋽" },
    },

    -- Passed directly to lvim-utils ui.new() — overrides border, size, keys, icons, highlights, etc.
    popup_global = {
        border = { "", "", "", " ", " ", " ", " ", " " },
        position = "editor",
        width = 0.8,
        height = 0.8,

        icons = {
            action = "",
            -- ...
        },

        keys = {
            down = "j",
            up = "k",
            confirm = "<CR>",
            cancel = "<Esc>",
            close = "q",
            tabs = { next = "l", prev = "h" },
        },

        highlights = {},
    },
})

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages