Skip to content

Commit 82f9de3

Browse files
authored
feat!: remove support for nvim v0.9 (#334)
BREAKING CHANGE: remove support for Neovim version 0.9 If you are using Neovim version 9.0 and cannot upgrade, then you can still use tag v6.4.0 of kitty-scrolback.nvim
1 parent 5574df7 commit 82f9de3

32 files changed

Lines changed: 81 additions & 693 deletions

.github/workflows/static.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: rhysd/action-setup-vim@v1
1818
with:
1919
neovim: true
20-
version: 'stable'
20+
version: 'nightly' # v0.12 needed for uv annotations
2121

2222
- name: Install dependencies
2323
run: |

.github/workflows/tests.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,11 @@ jobs:
3939
- 'stable' # 0.45.+
4040
- 'nightly'
4141
# update __branch-protection-rules.json and run __update_branch_protection_rules.sh when modified
42-
# test only latest patch versions of nvim released as of v0.9.0
42+
# test only latest patch versions of nvim released as of v0.10.4
4343
# test only latest patch versions of kitty released as of v0.32.2
4444
include:
4545
# nvim versions + kitty stable
46-
- nvim_version: 'v0.9.0'
47-
kitty_version: 'stable'
48-
- nvim_version: 'v0.9.5'
46+
- nvim_version: 'v0.10.0'
4947
kitty_version: 'stable'
5048
- nvim_version: 'v0.10.4'
5149
kitty_version: 'stable'

.github/workflows/validate-backport.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

README.md

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Navigate your [Kitty](https://sw.kovidgoyal.net/kitty/) scrollback buffer to qui
1010

1111
<!-- panvimdoc-ignore-start -->
1212

13-
[![neovim: v0.9+](https://img.shields.io/static/v1?style=flat-square&label=neovim&message=v0.9%2b&logo=neovim&labelColor=282828&logoColor=8faa80&color=414b32)](https://neovim.io/)
13+
[![neovim: v0.10+](https://img.shields.io/static/v1?style=flat-square&label=neovim&message=v0.10%2b&logo=neovim&labelColor=282828&logoColor=8faa80&color=414b32)](https://neovim.io/)
1414
[![kitty v0.32.2+](https://img.shields.io/badge/v0.32.2%2B-352217?style=flat-square&logo=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb%2F2wBDACodICUgGiolIiUvLSoyP2lEPzo6P4FcYUxpmYagnpaGk5GovfLNqLPltZGT0v%2FV5fr%2F%2F%2F%2F%2Fo8v%2F%2F%2F%2F%2F%2F%2FL%2F%2F%2F%2F%2F2wBDAS0vLz83P3xERHz%2FrpOu%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwAARCAEAAQADASIAAhEBAxEB%2F8QAGgABAAMBAQEAAAAAAAAAAAAAAAECAwQFBv%2FEAC8QAQACAQIEAgkFAQEAAAAAAAABAgMEERIhMVFBYQUTFCIyUnGRoUJTgZLB4SP%2FxAAXAQEBAQEAAAAAAAAAAAAAAAAAAQID%2F8QAGxEBAQEBAQEBAQAAAAAAAAAAAAERAhIhMUH%2F2gAMAwEAAhEDEQA%2FAPHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXix1ikTtG8rzWs9ax9mfTXlwjrtgpPht9GVtPaPhnddieaxCYmJ2mNhUAiJmdojdpXBefCI%2BppjMbxpu9vwt7NXvKbF81zDp9mr3lWdN2t%2BDYeawGlsF48In6M5iYnnEwupgBETM7RG4A2rp7T8U7NK4KR4b%2FVNi%2Ba5R2xSsdKx9lcuOs0mdoiYhPS%2BXIA0yAAAAAAAAAA7MU746z5LsNNb3Zr2bud%2FXSfgAiotWLRtaN2UaesTvO8x2bC6YiIiI2iNkggAAAAImImNpjdIDGdPWZ3jeI7Na1isbVjZIumACAplnbHafJdhqbbVivdZ%2BpfxzgOjmAAAAAABtunhnsCBPDPZALY7cF4n7u1wOnT5N68M9Y6M9RrmtgGGwAATFLW%2BGsz9IJiYnaYmPqCAAAAAiJmdoiZnyWml6xvNbR9YBUAAABx5b8eSZ8PBvnvw02jrLlb5jHV%2FgCeGezTKBPDPZG2wAAAJisgg3nutwx3TwwmrisWlaJiUcMI4T4fUzWCsTF4267o3mq1bc%2FMHYKY78Uea7DoPQ02krWItkje3afBzaOkX1Fd%2Bkc3qNcxnqit6VvG16xMeaMlprtELVneIknUtxh5uq03qZ4q86T%2BHO9jNSMmK1Z8YeOlmOnN0b6XTzmtvblSOvmwevgpFMNKx25kmnVxalK442pWIjyWRadqzKuO02336r6kuObDU6St4m2ONrdo6S87o9t5mtpFNRO36o3Oo3zXOCmTJFeUdWWnNliZy23RFY8VrW57zzlTebNua0zEKzaThTwwfD6rvPcX4YRwx3NMVEzWUKgAALRXunesdk1cU3nunilbihpSsTG8gzj3vCUxXhtE7dJbgqs0%2FXjlpS3FXdTaazvX7d167Tzjlv1ZrUdWhtFdRG%2FjGz03iRMxMTHKYepp9RXNXaZ2v4wvNZ6i2X4o%2Bi%2BP4ILVi3VPKI7RDM5s6tZRktFMdrT4Ru8Z16zUxf8A86TvXxnu5F6rfMHsYrRfFW0eMPHdWj1MY%2FcvPuz0nsc06mu7J8CuLrLTlaO8SitYrHJLzb3Kws83X2i2o2j9MbOzUaiuGve3hDy7TNrTaZ3mectdVrmKZL8Fd%2FsypT9eWf4a2iN4tPPbpCm02ne327JGqyvXjvNoidlZ93wl0DWMuXilG89296REbwz4oEUF96yiax4GmKgKgAAtjpxz5Kt8HwT9QXisVjlCQRQAAAF6zunp0YZbzSu8TtLL12T5vwnlr09GuqzVjaMk%2FwA81b5smT47zMdnB67J834PXZPm%2FBlNjsb10ma0b8G31l5sZ8kTvFua%2Ftup%2Fev9zyXp3zpM0fo3%2BksJiYnaY2mHP7bqf3r%2FAHUnPlmZmbzMz4nlJ07qZsmP4LzEdl51Wa0bTkn%2BOTzfXZPm%2FB67J834Mq%2Bo7JmZneecomdnJ67J834a4rzeJ4p3lPJ6XmdwGkABBW1K26wsA5r0mk%2BSrfP8H8sFQAAAAXx34J59JUAdUTExyndLkImYneBddYyrm5e9H2JzRtyj7g0m0R1mIVnLWPHdzzMzO89QNTe03neUAIAAAAAAAAJpaazvCAHRXLWevJaLRPSYlykTMTvAuusZVzRt70fYtm5e7H3BqiZiOs7OWZmZ3nqBq%2BS%2FHPLpCgCAAAAAAAAAAAALY8d8s7Y6WtPlCLVtS01tExMdYl6vobJj4L4%2BUZN9%2FrDp12jrqqbxtGSOk%2F5IPAFslLY7zS8TFo6xKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAJpa1LRaszFo6TD3dBra6mvDfaMsdY7vBTW1qWi1ZmLR0mAe9rtHXVU3jaMkdJ%2FyXhZKWx3ml4mLR1h7eg1tdTXhvtGWOsd1tdo66qm8bRkjpP%2BSDwBOSlsd5peJi0dYQAAAAAAAAAAAAAAAAAAAAAAAAAAAACa2tS0WrMxaOkw93QayNVThtyyVjn5%2BbxcGG%2BoyxTHG8z%2BHv6XTU02Phrzmetu4M9fo66jHNo5ZKxynv5PAex6S10Y4nDine88rT2eOAAAAAAAAAAAAAAAAAAAAAAAAAAA0wYb6jLFMcbzP4MGG%2BoyxTHG8z%2BHv6XTU02Lhpzmetu4Gl01NNj4a85nrbu5fSOv9VE4sM%2B%2F4z8v%2FT0jr%2FVb4sM%2B%2FwCNvl%2F68br1A6zzAAF64ct43pjvaO8VmU%2BzZ%2F2cn9ZBmNfZs%2F7OT%2Bsns2f9nJ%2FWQZDT2bP%2Bzk%2FrKLYctI3vjvWO81mAUAAAAAAAAAAAAAAAAAAAB6vobJirjvWZiMkzvz8YX9IekIxxOLBaJvPW0eDxwDr1AAI68%2BgA%2BmwXx2xVnFMTXblsu%2BWAfVIfLAPqVM18dMVpyzEV257vmQCevIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH%2F9k%3D&label=kitty&labelColor=282828)](https://sw.kovidgoyal.net/kitty/)
1515
[![semantic-release: angular](https://img.shields.io/static/v1?style=flat-square&label=semantic-release&message=angular&logo=semantic-release&labelColor=282828&logoColor=d8869b&color=8f3f71)](https://github.com/semantic-release/semantic-release)
1616
[![test status](https://img.shields.io/github/actions/workflow/status/mikesmithgh/kitty-scrollback.nvim/tests.yml?style=flat-square&logo=github&logoColor=c7c7c7&label=tests&labelColor=282828&event=push)](https://github.com/mikesmithgh/kitty-scrollback.nvim/actions/workflows/tests.yml?query=event%3Apush)
@@ -29,7 +29,7 @@ Navigate your [Kitty](https://sw.kovidgoyal.net/kitty/) scrollback buffer to qui
2929
## 📖 Contents
3030

3131
-[Features](#-features)
32-
- 🚀 [Migrating to v6.0.0](#-migrating-to-v600)
32+
- 🚀 [Migrating to v7.0.0](#-migrating-to-v700)
3333
- 📚 [Prerequisites](#-prerequisites)
3434
- 🏃 [Quickstart](#-quickstart)
3535
- 📦 [Installation](#-installation)
@@ -198,17 +198,17 @@ This requires extra steps to setup. See optional [tmux setup](#tmux--experimenta
198198

199199
</details>
200200

201-
## 🚀 Migrating to v6.0.0
201+
## 🚀 Migrating to v7.0.0
202202
> [!IMPORTANT]\
203-
> v6.0.0 has breaking changes.
203+
> v7.0.0 has breaking changes.
204204
>
205205
> You can ignore this section if you have not previously installed any version of kitty-scrollback.nvim
206206
207207
<details>
208208

209209
<summary>Migration Steps</summary>
210210

211-
If you have any problems or questions migrating to `v6.0.0`, please open an
211+
If you have any problems or questions migrating to `v7.0.0`, please open an
212212
[issue](https://github.com/mikesmithgh/kitty-scrollback.nvim/issues) or
213213
[discussion](https://github.com/mikesmithgh/kitty-scrollback.nvim/discussions).
214214

@@ -218,40 +218,19 @@ This requires extra steps to setup. See optional [tmux setup](#tmux--experimenta
218218

219219
<!-- panvimdoc-ignore-end -->
220220

221-
- kitty-scrollback.nvim v6.0.0 changes the default keymap for quitting kitty-scrollback.nvim from `<Esc>` to `q`.
222-
No steps are necessary if you prefer this new behavior.
221+
- kitty-scrollback.nvim v7.0.0 dropped support for Neovim version 0.9.
223222

223+
If you are using Neovim version 9.0, please upgrade to 10.0 or greater.
224224

225-
If you prefer the previous behavior of using `<Esc>` to exit kitty-scrollback.nvim, this can be reconfigured by
226-
adding the following to your kitty-scrollback.nvim setup.
225+
If you are using Neovim version 9.0 and cannot upgrade, then you can still use tag v6.4.0 of kitty-scrolback.nvim
227226

228-
```lua
229-
vim.keymap.set({ 'n' }, '<Esc>', '<Plug>(KsbCloseOrQuitAll)', {})
230-
```
231-
232-
For example, if you are using lazy.nvim, it would look something like this
233-
234-
```lua
235-
return {
236-
{
237-
'mikesmithgh/kitty-scrollback.nvim',
238-
lazy = true,
239-
cmd = { 'KittyScrollbackGenerateKittens', 'KittyScrollbackCheckHealth' },
240-
event = { 'User KittyScrollbackLaunch' },
241-
config = function()
242-
vim.keymap.set({ 'n' }, '<Esc>', '<Plug>(KsbCloseOrQuitAll)', {}) -- quit kitty-scrollback.nvim with Esc key
243-
-- vim.keymap.set({ 'n' }, 'q', '<Plug>(KsbCloseOrQuitAll)', {}) -- uncomment if you would like to also quit with the q key
244-
require('kitty-scrollback').setup()
245-
end,
246-
},
247-
}
248-
```
227+
See https://github.com/mikesmithgh/kitty-scrollback.nvim/releases/tag/v6.4.0
249228

250229
</details>
251230

252231
## 📚 Prerequisites
253232

254-
- Neovim [v0.9+](https://github.com/neovim/neovim/releases)
233+
- Neovim [v0.10+](https://github.com/neovim/neovim/releases)
255234
- Kitty [v0.32.2+](https://github.com/kovidgoyal/kitty/releases)
256235

257236
## 🏃 Quickstart

doc/kitty-scrollback.nvim.txt

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Table of Contents *kitty-scrollback.nvim-table-of-contents*
55

66
1. kitty-scrollback.nvim |kitty-scrollback.nvim-kitty-scrollback.nvim|
77
- Features |kitty-scrollback.nvim-features|
8-
- Migrating to v6.0.0 |kitty-scrollback.nvim-migrating-to-v6.0.0|
8+
- Migrating to v7.0.0 |kitty-scrollback.nvim-migrating-to-v7.0.0|
99
- Prerequisites |kitty-scrollback.nvim-prerequisites|
1010
- Quickstart |kitty-scrollback.nvim-quickstart|
1111
- Installation |kitty-scrollback.nvim-installation|
@@ -111,50 +111,28 @@ This requires extra steps to setup. See optional
111111
- That’s it! You are in Neovim, navigate the scrollback buffer.
112112

113113

114-
MIGRATING TO V6.0.0 *kitty-scrollback.nvim-migrating-to-v6.0.0*
114+
MIGRATING TO V7.0.0 *kitty-scrollback.nvim-migrating-to-v7.0.0*
115115

116116

117117
|| |IMPORTANT|
118-
v6.0.0 has breaking changes.
118+
v7.0.0 has breaking changes.
119119
You can ignore this section if you have not previously installed any version of
120120
kitty-scrollback.nvim
121121

122122
`-` `Migration Steps`
123-
If you have any problems or questions migrating to `v6.0.0`, please open an
123+
If you have any problems or questions migrating to `v7.0.0`, please open an
124124
issue <https://github.com/mikesmithgh/kitty-scrollback.nvim/issues> or
125125
discussion <https://github.com/mikesmithgh/kitty-scrollback.nvim/discussions>.
126-
- kitty-scrollback.nvim v6.0.0 changes the default keymap for quitting
127-
kitty-scrollback.nvim from `<Esc>` to `q`. No steps are necessary if you prefer
128-
this new behavior.
129-
If you prefer the previous behavior of using `<Esc>` to exit
130-
kitty-scrollback.nvim, this can be reconfigured by adding the following to your
131-
kitty-scrollback.nvim setup.
132-
133-
>lua
134-
vim.keymap.set({ 'n' }, '<Esc>', '<Plug>(KsbCloseOrQuitAll)', {})
135-
<
136-
For example, if you are using lazy.nvim, it would look something like this
137-
138-
>lua
139-
return {
140-
{
141-
'mikesmithgh/kitty-scrollback.nvim',
142-
lazy = true,
143-
cmd = { 'KittyScrollbackGenerateKittens', 'KittyScrollbackCheckHealth' },
144-
event = { 'User KittyScrollbackLaunch' },
145-
config = function()
146-
vim.keymap.set({ 'n' }, '<Esc>', '<Plug>(KsbCloseOrQuitAll)', {}) -- quit kitty-scrollback.nvim with Esc key
147-
-- vim.keymap.set({ 'n' }, 'q', '<Plug>(KsbCloseOrQuitAll)', {}) -- uncomment if you would like to also quit with the q key
148-
require('kitty-scrollback').setup()
149-
end,
150-
},
151-
}
152-
<
126+
- kitty-scrollback.nvim v7.0.0 dropped support for Neovim version 0.9.
127+
If you are using Neovim version 9.0, please upgrade to 10.0 or greater.
128+
If you are using Neovim version 9.0 and cannot upgrade, then you can still use
129+
tag v6.4.0 of kitty-scrolback.nvim
130+
See https://github.com/mikesmithgh/kitty-scrollback.nvim/releases/tag/v6.4.0
153131

154132

155133
PREREQUISITES *kitty-scrollback.nvim-prerequisites*
156134

157-
- Neovim v0.9+ <https://github.com/neovim/neovim/releases>
135+
- Neovim v0.10+ <https://github.com/neovim/neovim/releases>
158136
- Kitty v0.32.2+ <https://github.com/kovidgoyal/kitty/releases>
159137

160138

@@ -640,6 +618,8 @@ CONFIGURATION OPTIONS
640618
checkhealth = false,
641619
-- string? Sets the mode for coloring the Visual highlight group in the scrollback buffer window. darken uses a darkened version of the Normal highlight group to improve readability. kitty uses the colors defined for selection_foreground and selection_background in your Kitty configuration. nvim uses the default colors defined in the Visual highlight group. reverse reverses the foreground and background colors of the visual selection.
642620
visual_selection_highlight_mode = 'darken',
621+
-- integer? Temporary column width during get-text operation to avoid hard wrapping (larger values may impact performance), see :h columns
622+
scrollback_columns = 300,
643623
}
644624
<
645625

doc/kitty-scrollback.nvim_spec.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ KsbOpts *default_opts.KsbOpts*
197197
{kitty_get_text} (KsbKittyGetText|nil) options passed to get-text when reading scrollback buffer, see `kitty @ get-text --help`
198198
{checkhealth} (boolean|nil) if true execute :checkhealth kitty-scrollback and skip setup
199199
{visual_selection_highlight_mode} (string|"darken"|"kitty"|"nvim"|"reverse"|nil)
200+
{scrollback_columns} (integer|nil) temporary column width during get-text operation to avoid hard wrapping (larger values may impact performance), see :h columns
200201

201202

202203
==============================================================================

lua/kitty-scrollback/api.lua

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -311,12 +311,7 @@ M.checkhealth = function()
311311
vim.api.nvim_get_runtime_file('python/kitty_scrollback_nvim.py', false)[1],
312312
':p'
313313
)
314-
-- NOTE(#58): nvim v0.9 support
315-
-- setup backports for v0.9 because checkhealth can be called outside of standard setup flow
316-
if vim.fn.has('nvim-0.10') <= 0 then
317-
require('kitty-scrollback.backport').setup()
318-
end
319-
if vim.fn.has('nvim-0.9') > 0 then
314+
if vim.fn.has('nvim-0.10') > 0 then
320315
vim
321316
.system({
322317
-- fallback to 'kitty' because checkhealth can be called outside of standard setup flow
@@ -331,7 +326,7 @@ M.checkhealth = function()
331326
:wait()
332327
else
333328
-- fallback on checkhealth for earlier versions of nvim
334-
vim.cmd.checkhealth('kitty-scrollback')
329+
vim.cmd('checkhealth kitty-scrollback') -- prefer vim.cmd('checkhealth') over vim.cmd.checkhealth to support older versions of neovim
335330
end
336331
end
337332

lua/kitty-scrollback/autocommands.lua

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ local p
1212
---@type KsbOpts
1313
local opts ---@diagnostic disable-line: unused-local
1414

15+
---Normalize to string[]
16+
---@param value? string|string[]
17+
---@return string[]
18+
local function as_list(value)
19+
if type(value) == 'string' then
20+
return { value }
21+
elseif type(value) == 'table' then
22+
return value
23+
end
24+
return {}
25+
end
26+
1527
M.setup = function(private, options)
1628
p = private
1729
opts = options ---@diagnostic disable-line: unused-local
@@ -127,7 +139,7 @@ M.set_term_enter_autocmd = function(bufid)
127139
end
128140

129141
M.set_colorscheme_autocmd = function()
130-
vim.api.nvim_create_autocmd({ 'Colorscheme' }, {
142+
vim.api.nvim_create_autocmd({ 'ColorScheme' }, {
131143
group = vim.api.nvim_create_augroup('KittyScrollBackNvimColorscheme', { clear = true }),
132144
callback = ksb_hl.set_highlights,
133145
})
@@ -195,7 +207,7 @@ M.set_yank_post_autocmd = function()
195207
end
196208

197209
local contents = {}
198-
for _, line in pairs(yankevent.regcontents) do
210+
for _, line in ipairs(as_list(yankevent.regcontents)) do
199211
line = line:gsub('%s+$', '')
200212
table.insert(contents, line)
201213
end

lua/kitty-scrollback/backport/README.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)