Compare commits

...

3 Commits

Author SHA1 Message Date
glepnir cb2de398d8
Merge 3df8cbc675 into c18d7941ef 2024-05-09 16:49:03 +01:00
dundargoc c18d7941ef build: allow sccache as compiler cache
Also enable caching for dependencies.

Closes https://github.com/neovim/neovim/issues/28670
2024-05-09 16:39:45 +02:00
glepnir 3df8cbc675 fix(float): missing default highlight for title
Problem: there is missing default title highlight when highlight not defined in title text chunk.

Solution: when attr is not set use default title highlight group.
2024-05-03 18:28:49 +08:00
7 changed files with 33 additions and 23 deletions

View File

@ -50,11 +50,6 @@ file(GLOB DOCFILES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/doc/*.txt)
set_directory_properties(PROPERTIES
EP_PREFIX "${DEPS_BUILD_DIR}")
find_program(CCACHE_PRG ccache)
if(CCACHE_PRG)
set(CMAKE_C_COMPILER_LAUNCHER ${CMAKE_COMMAND} -E env CCACHE_SLOPPINESS=pch_defines,time_macros ${CCACHE_PRG})
endif()
if(NOT CI_BUILD)
set(CMAKE_INSTALL_MESSAGE NEVER)
endif()

View File

@ -23,6 +23,12 @@ if(POLICY CMP0092)
list(APPEND DEPS_CMAKE_ARGS -D CMAKE_POLICY_DEFAULT_CMP0092=NEW)
endif()
find_program(CACHE_PRG NAMES ccache sccache)
if(CACHE_PRG)
set(CMAKE_C_COMPILER_LAUNCHER ${CMAKE_COMMAND} -E env CCACHE_SLOPPINESS=pch_defines,time_macros ${CACHE_PRG})
list(APPEND DEPS_CMAKE_CACHE_ARGS -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER})
endif()
# MAKE_PRG
if(UNIX)
find_program(MAKE_PRG NAMES gmake make)
@ -58,7 +64,8 @@ function(get_externalproject_options name DEPS_IGNORE_SHA)
set(EXTERNALPROJECT_OPTIONS
DOWNLOAD_NO_PROGRESS TRUE
EXTERNALPROJECT_OPTIONS URL ${${name_allcaps}_URL})
EXTERNALPROJECT_OPTIONS URL ${${name_allcaps}_URL}
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
if(NOT ${DEPS_IGNORE_SHA})
list(APPEND EXTERNALPROJECT_OPTIONS URL_HASH SHA256=${${name_allcaps}_SHA256})

View File

@ -3270,13 +3270,15 @@ nvim_open_win({buffer}, {enter}, {config}) *nvim_open_win()*
<
• title: Title (optional) in window border, string or list.
List should consist of `[text, highlight]` tuples. If
string, the default highlight group is `FloatTitle`.
string, or the tuple lacks a highlight, the default
highlight group is `FloatTitle`.
• title_pos: Title position. Must be set with `title`
option. Value can be one of "left", "center", or "right".
Default is `"left"`.
• footer: Footer (optional) in window border, string or
list. List should consist of `[text, highlight]` tuples.
If string, the default highlight group is `FloatFooter`.
If string, or the tuple lacks a highlight, the default
highlight group is `FloatFooter`.
• footer_pos: Footer position. Must be set with `footer`
option. Value can be one of "left", "center", or "right".
Default is `"left"`.

View File

@ -1731,13 +1731,15 @@ function vim.api.nvim_open_term(buffer, opts) end
---
--- • title: Title (optional) in window border, string or list.
--- List should consist of `[text, highlight]` tuples. If
--- string, the default highlight group is `FloatTitle`.
--- string, or the tuple lacks a highlight, the default
--- highlight group is `FloatTitle`.
--- • title_pos: Title position. Must be set with `title`
--- option. Value can be one of "left", "center", or "right".
--- Default is `"left"`.
--- • footer: Footer (optional) in window border, string or
--- list. List should consist of `[text, highlight]` tuples.
--- If string, the default highlight group is `FloatFooter`.
--- If string, or the tuple lacks a highlight, the default
--- highlight group is `FloatFooter`.
--- • footer_pos: Footer position. Must be set with `footer`
--- option. Value can be one of "left", "center", or "right".
--- Default is `"left"`.

View File

@ -189,13 +189,13 @@
/// ```
/// - title: Title (optional) in window border, string or list.
/// List should consist of `[text, highlight]` tuples.
/// If string, the default highlight group is `FloatTitle`.
/// If string, or the tuple lacks a highlight, the default highlight group is `FloatTitle`.
/// - title_pos: Title position. Must be set with `title` option.
/// Value can be one of "left", "center", or "right".
/// Default is `"left"`.
/// - footer: Footer (optional) in window border, string or list.
/// List should consist of `[text, highlight]` tuples.
/// If string, the default highlight group is `FloatFooter`.
/// If string, or the tuple lacks a highlight, the default highlight group is `FloatFooter`.
/// - footer_pos: Footer position. Must be set with `footer` option.
/// Value can be one of "left", "center", or "right".
/// Default is `"left"`.

View File

@ -65,6 +65,7 @@
#include "nvim/autocmd.h"
#include "nvim/autocmd_defs.h"
#include "nvim/buffer.h"
#include "nvim/buffer_defs.h"
#include "nvim/charset.h"
#include "nvim/cmdexpand.h"
#include "nvim/cursor.h"
@ -715,7 +716,7 @@ void end_search_hl(void)
screen_search_hl.rm.regprog = NULL;
}
static void win_redr_bordertext(win_T *wp, VirtText vt, int col)
static void win_redr_bordertext(win_T *wp, VirtText vt, int col, BorderTextType bt)
{
for (size_t i = 0; i < kv_size(vt);) {
int attr = 0;
@ -723,6 +724,9 @@ static void win_redr_bordertext(win_T *wp, VirtText vt, int col)
if (text == NULL) {
break;
}
if (attr == 0) {
attr = bt == kBorderTextTitle ? wp->w_ns_hl_attr[HLF_BTITLE] : wp->w_ns_hl_attr[HLF_BFOOTER];
}
attr = hl_apply_winblend(wp, attr);
col += grid_line_puts(col, text, -1, attr);
}
@ -773,7 +777,7 @@ static void win_redr_border(win_T *wp)
if (wp->w_config.title) {
int title_col = win_get_bordertext_col(icol, wp->w_config.title_width,
wp->w_config.title_pos);
win_redr_bordertext(wp, wp->w_config.title_chunks, title_col);
win_redr_bordertext(wp, wp->w_config.title_chunks, title_col, kBorderTextTitle);
}
if (adj[1]) {
grid_line_put_schar(icol + adj[3], chars[2], attrs[2]);
@ -809,7 +813,7 @@ static void win_redr_border(win_T *wp)
if (wp->w_config.footer) {
int footer_col = win_get_bordertext_col(icol, wp->w_config.footer_width,
wp->w_config.footer_pos);
win_redr_bordertext(wp, wp->w_config.footer_chunks, footer_col);
win_redr_bordertext(wp, wp->w_config.footer_chunks, footer_col, kBorderTextFooter);
}
if (adj[1]) {
grid_line_put_schar(icol + adj[3], chars[4], attrs[4]);

View File

@ -2127,7 +2127,7 @@ describe('float window', function()
## grid 3
|
## grid 4
{5:}🦄BB{5:}|
{5:}{11:🦄BB}{5:}|
{5:}{1: halloj! }{5:}|
{5:}{1: BORDAA }{5:}|
{5:}|
@ -2141,7 +2141,7 @@ describe('float window', function()
screen:expect{grid=[[
^ |
{0:~ }|
{0:~ }{5:}🦄BB{5:}{0: }|
{0:~ }{5:}{11:🦄BB}{5:}{0: }|
{0:~ }{5:}{1: halloj! }{5:}{0: }|
{0:~ }{5:}{1: BORDAA }{5:}{0: }|
{0:~ }{5:}{0: }|
@ -2275,7 +2275,7 @@ describe('float window', function()
{5:}|
{5:}{1: halloj! }{5:}|
{5:}{1: BORDAA }{5:}|
{5:}🦄BB{5:}|
{5:}{11:🦄BB}{5:}|
]], float_pos={
[4] = { 1001, "NW", 1, 2, 5, true }
}, win_viewport={
@ -2289,7 +2289,7 @@ describe('float window', function()
{0:~ }{5:}{0: }|
{0:~ }{5:}{1: halloj! }{5:}{0: }|
{0:~ }{5:}{1: BORDAA }{5:}{0: }|
{0:~ }{5:}🦄BB{5:}{0: }|
{0:~ }{5:}{11:🦄BB}{5:}{0: }|
|
]]}
end
@ -2422,10 +2422,10 @@ describe('float window', function()
## grid 3
|
## grid 4
{5:}🦄{7:BB}{5:}|
{5:}{11:🦄}{7:BB}{5:}|
{5:}{1: halloj! }{5:}|
{5:}{1: BORDAA }{5:}|
{5:}🦄{7:BB}{5:}|
{5:}{11:🦄}{7:BB}{5:}|
]], float_pos={
[4] = { 1001, "NW", 1, 2, 5, true }
}, win_viewport={
@ -2436,10 +2436,10 @@ describe('float window', function()
screen:expect{grid=[[
^ |
{0:~ }|
{0:~ }{5:}🦄{7:BB}{5:}{0: }|
{0:~ }{5:}{11:🦄}{7:BB}{5:}{0: }|
{0:~ }{5:}{1: halloj! }{5:}{0: }|
{0:~ }{5:}{1: BORDAA }{5:}{0: }|
{0:~ }{5:}🦄{7:BB}{5:}{0: }|
{0:~ }{5:}{11:🦄}{7:BB}{5:}{0: }|
|
]]}
end