Skip to content

Commit 4dc8099

Browse files
committed
fix: better handling of vim.o.winborder
1 parent 4be11fd commit 4dc8099

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ require("tinygit").setup {
138138
},
139139
commit = {
140140
keepAbortedMsgSecs = 300,
141-
border = vim.fn.has("nvim-0.11") == 1 and vim.o.winborder or "rounded",
141+
border = getBorder(), -- `vim.o.winborder` on nvim 0.11, otherwise "rounded"
142142
spellcheck = false, -- vim's builtin spellcheck
143143
wrap = "hard", ---@type "hard"|"soft"|"none"
144144
keymaps = {
@@ -187,7 +187,7 @@ require("tinygit").setup {
187187
diffPopup = {
188188
width = 0.8, -- between 0-1
189189
height = 0.8,
190-
border = vim.fn.has("nvim-0.11") == 1 and vim.o.winborder or "rounded",
190+
border = getBorder(), -- `vim.o.winborder` on nvim 0.11, otherwise "rounded"
191191
},
192192
autoUnshallowIfNeeded = false,
193193
},

lua/tinygit/config.lua

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
local M = {}
22
--------------------------------------------------------------------------------
33

4+
local fallbackBorder = "rounded"
5+
6+
---@return string
7+
local function getBorder()
8+
local hasWinborder, winborder = pcall(function() return vim.o.winborder end)
9+
if not hasWinborder or winborder == "" or winborder == "none" then return fallbackBorder end
10+
return winborder
11+
end
12+
13+
--------------------------------------------------------------------------------
14+
415
---@class Tinygit.Config
516
local defaultConfig = {
617
stage = { -- requires `telescope.nvim`
@@ -26,7 +37,7 @@ local defaultConfig = {
2637
},
2738
commit = {
2839
keepAbortedMsgSecs = 300,
29-
border = vim.fn.has("nvim-0.11") == 1 and vim.o.winborder or "rounded",
40+
border = getBorder(), -- `vim.o.winborder` on nvim 0.11, otherwise "rounded"
3041
spellcheck = false, -- vim's builtin spellcheck
3142
wrap = "hard", ---@type "hard"|"soft"|"none"
3243
keymaps = {
@@ -75,7 +86,7 @@ local defaultConfig = {
7586
diffPopup = {
7687
width = 0.8, -- between 0-1
7788
height = 0.8,
78-
border = vim.fn.has("nvim-0.11") == 1 and vim.o.winborder or "rounded",
89+
border = getBorder(), -- `vim.o.winborder` on nvim 0.11, otherwise "rounded"
7990
},
8091
autoUnshallowIfNeeded = false,
8192
},
@@ -168,15 +179,13 @@ function M.setup(userConfig)
168179
---@diagnostic enable: undefined-field
169180

170181
-- VALIDATE border `none` does not work with and title/footer used by this plugin
171-
if M.config.history.diffPopup.border == "none" then
172-
local fallback = defaultConfig.history.diffPopup.border
173-
M.config.history.diffPopup.border = fallback
174-
warn(('Border type "none" is not supported, falling back to %q.'):format(fallback))
182+
if M.config.history.diffPopup.border == "none" or M.config.history.diffPopup.border == "" then
183+
M.config.history.diffPopup.border = fallbackBorder
184+
warn(('Border type "none" is not supported, falling back to %q.'):format(fallbackBorder))
175185
end
176-
if M.config.commit.border == "none" then
177-
local fallback = defaultConfig.commit.border
178-
M.config.commit.border = fallback
179-
warn(('Border type "none" is not supported, falling back to %q.'):format(fallback))
186+
if M.config.commit.border == "none" or M.config.commit.border == "" then
187+
M.config.commit.border = fallbackBorder
188+
warn(('Border type "none" is not supported, falling back to %q.'):format(fallbackBorder))
180189
end
181190

182191
-- VALIDATE `context` > 0 (0 is not supported without `--unidiff-zero`)

0 commit comments

Comments
 (0)