An open API service indexing awesome lists of open source software.

https://github.com/letieu/harpoon-lualine

harpoon2 for lualine
https://github.com/letieu/harpoon-lualine

harpoon neovim-plugin nvim nvim-plugin

Last synced: 24 days ago
JSON representation

harpoon2 for lualine

Awesome Lists containing this project

README

        

# Harpoon Lualine Plugin

![Screenshot 2024-03-15 at 12 47 08 PM](https://github.com/letieu/harpoon-lualine/assets/53562817/5d6f055f-de67-46dd-8b73-ecbf7a5dba5b)

**Add a harpoon indicator to your Neovim Lualine!**

## Features

* Shows [Harpoon](https://github.com/ThePrimeagen/harpoon/tree/harpoon2) status in [Lualine](https://github.com/nvim-lualine/lualine.nvim).

> [!IMPORTANT]
> Make sure to install [harpoon2](https://github.com/ThePrimeagen/harpoon/tree/harpoon2) , not harpoon on `master` branch
>

## Installation

* With **lazy.nvim**
```lua
{
"letieu/harpoon-lualine",
dependencies = {
{
"ThePrimeagen/harpoon",
branch = "harpoon2",
}
},
}
```
* With **packer.nvim**
```lua
use {
'letieu/harpoon-lualine',
opt = false,
requires = {{'ThePrimeagen/harpoon'}}
}

```

## Usage

Add this to your [Lualine](https://github.com/nvim-lualine/lualine.nvim) setup:

```lua
lualine_c = { "harpoon2" },
```

**Custom config**

```lua
lualine_c = {
{
"harpoon2",
icon = '♥',
indicators = { "a", "s", "q", "w" },
active_indicators = { "A", "S", "Q", "W" },
color_active = { fg = "#00ff00" },
_separator = " ",
no_harpoon = "Harpoon not loaded",
},
}

```

**Use function as indicator**

```lua
-- harpoon_entry = {
-- context = { col = 0, row = 1 },
-- value = "init.lua"
-- }
local function get_harpoon_indicator(harpoon_entry)
return harpoon_entry.value
end

-- lualine setup
...
active_indicators = {
get_harpoon_indicator,
get_harpoon_indicator,
get_harpoon_indicator,
get_harpoon_indicator,
},
...
```

## How I use harpoon 💡

Bind harpoon mark to `a`, `s`, `q`, `w` and use `Ctrl` + `a`, `s`, `q`, `w` to jump to the mark.

```lua
vim.keymap.set("n", "", function() harpoon:list():select(1) end)
vim.keymap.set("n", "", function() harpoon:list():select(2) end)
vim.keymap.set("n", "", function() harpoon:list():select(3) end)
vim.keymap.set("n", "", function() harpoon:list():select(4) end)
```

View current marks with lualine

```lua
lualine_c = {
'%=', -- make the indicator center
{
"harpoon2",
indicators = { "a", "s", "q", "w" },
active_indicators = { "A", "S", "Q", "W" },
_separator = " ",
}
}
```

**Enjoy!**

**Note:** Customize indicator characters by editing the configuration.

**Note:** To center the indicator, add a `%=`. For example: `lualine_c = { "%=", "harpoon2"},`

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Taken
Taken

💻
Le Tieu
Le Tieu

🚧 🤔
simachri
simachri

💻
Patrick Dewey
Patrick Dewey

💻
Owen L.
Owen L.

💻
Nguyen Ngoc Minh Tu
Nguyen Ngoc Minh Tu

💻

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!