vim-patch:8.1.1693: syntax coloring and highlighting is in one big file (#17721)

Problem:    Syntax coloring and highlighting is in one big file.
Solution:   Move the highlighting to a separate file. (Yegappan Lakshmanan,
            closes vim/vim#4674)

f9cc9f209e

Name the new file highlight_group.c instead.

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
Lewis Russell 2022-03-18 04:47:08 +00:00 committed by GitHub
parent c1b98cfa5e
commit 00effff569
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 2874 additions and 2841 deletions

View File

@ -236,6 +236,10 @@ preprocess_patch() {
LC_ALL=C sed -e 's/\( [ab]\/src\/nvim\)\/session\(\.[ch]\)/\1\/ex_session\2/g' \ LC_ALL=C sed -e 's/\( [ab]\/src\/nvim\)\/session\(\.[ch]\)/\1\/ex_session\2/g' \
"$file" > "$file".tmp && mv "$file".tmp "$file" "$file" > "$file".tmp && mv "$file".tmp "$file"
# Rename highlight.c to highlight_group.c
LC_ALL=C sed -e 's/\( [ab]\/src\/nvim\)\/highlight\(\.[ch]\)/\1\/highlight_group\2/g' \
"$file" > "$file".tmp && mv "$file".tmp "$file"
# Rename test_urls.vim to check_urls.vim # Rename test_urls.vim to check_urls.vim
LC_ALL=C sed -e 's@\( [ab]\)/runtime/doc/test\(_urls.vim\)@\1/scripts/check\2@g' \ LC_ALL=C sed -e 's@\( [ab]\)/runtime/doc/test\(_urls.vim\)@\1/scripts/check\2@g' \
"$file" > "$file".tmp && mv "$file".tmp "$file" "$file" > "$file".tmp && mv "$file".tmp "$file"

View File

@ -10,10 +10,10 @@
#include "nvim/api/private/helpers.h" #include "nvim/api/private/helpers.h"
#include "nvim/decoration_provider.h" #include "nvim/decoration_provider.h"
#include "nvim/extmark.h" #include "nvim/extmark.h"
#include "nvim/highlight_group.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/memline.h" #include "nvim/memline.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/syntax.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS #ifdef INCLUDE_GENERATED_DECLARATIONS
# include "api/extmark.c.generated.h" # include "api/extmark.c.generated.h"
@ -856,7 +856,7 @@ Integer nvim_buf_add_highlight(Buffer buffer, Integer ns_id, String hl_group, In
int hl_id = 0; int hl_id = 0;
if (hl_group.size > 0) { if (hl_group.size > 0) {
hl_id = syn_check_group(hl_group.data, (int)hl_group.size); hl_id = syn_check_group(hl_group.data, hl_group.size);
} else { } else {
return ns_id; return ns_id;
} }

View File

@ -22,6 +22,7 @@
#include "nvim/extmark.h" #include "nvim/extmark.h"
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight_group.h"
#include "nvim/lib/kvec.h" #include "nvim/lib/kvec.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/map.h" #include "nvim/map.h"
@ -32,7 +33,6 @@
#include "nvim/msgpack_rpc/helpers.h" #include "nvim/msgpack_rpc/helpers.h"
#include "nvim/option.h" #include "nvim/option.h"
#include "nvim/option_defs.h" #include "nvim/option_defs.h"
#include "nvim/syntax.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/version.h" #include "nvim/version.h"
#include "nvim/vim.h" #include "nvim/vim.h"
@ -1293,7 +1293,7 @@ int object_to_hl_id(Object obj, const char *what, Error *err)
{ {
if (obj.type == kObjectTypeString) { if (obj.type == kObjectTypeString) {
String str = obj.data.string; String str = obj.data.string;
return str.size ? syn_check_group(str.data, (int)str.size) : 0; return str.size ? syn_check_group(str.data, str.size) : 0;
} else if (obj.type == kObjectTypeInteger) { } else if (obj.type == kObjectTypeInteger) {
return MAX((int)obj.data.integer, 0); return MAX((int)obj.data.integer, 0);
} else { } else {
@ -1327,7 +1327,7 @@ HlMessage parse_hl_msg(Array chunks, Error *err)
String hl = chunk.items[1].data.string; String hl = chunk.items[1].data.string;
if (hl.size > 0) { if (hl.size > 0) {
// TODO(bfredl): use object_to_hl_id and allow integer // TODO(bfredl): use object_to_hl_id and allow integer
int hl_id = syn_check_group(hl.data, (int)hl.size); int hl_id = syn_check_group(hl.data, hl.size);
attr = hl_id > 0 ? syn_id2attr(hl_id) : 0; attr = hl_id > 0 ? syn_id2attr(hl_id) : 0;
} }
} }

View File

@ -35,6 +35,7 @@
#include "nvim/globals.h" #include "nvim/globals.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_defs.h" #include "nvim/highlight_defs.h"
#include "nvim/highlight_group.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/mark.h" #include "nvim/mark.h"
#include "nvim/memline.h" #include "nvim/memline.h"
@ -50,7 +51,6 @@
#include "nvim/popupmnu.h" #include "nvim/popupmnu.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/state.h" #include "nvim/state.h"
#include "nvim/syntax.h"
#include "nvim/types.h" #include "nvim/types.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/vim.h" #include "nvim/vim.h"
@ -112,7 +112,7 @@ Dictionary nvim_get_hl_by_id(Integer hl_id, Boolean rgb, Error *err)
Integer nvim_get_hl_id_by_name(String name) Integer nvim_get_hl_id_by_name(String name)
FUNC_API_SINCE(7) FUNC_API_SINCE(7)
{ {
return syn_check_group(name.data, (int)name.size); return syn_check_group(name.data, name.size);
} }
Dictionary nvim__get_hl_defs(Integer ns_id, Error *err) Dictionary nvim__get_hl_defs(Integer ns_id, Error *err)
@ -147,7 +147,7 @@ Dictionary nvim__get_hl_defs(Integer ns_id, Error *err)
void nvim_set_hl(Integer ns_id, String name, Dict(highlight) *val, Error *err) void nvim_set_hl(Integer ns_id, String name, Dict(highlight) *val, Error *err)
FUNC_API_SINCE(7) FUNC_API_SINCE(7)
{ {
int hl_id = syn_check_group(name.data, (int)name.size); int hl_id = syn_check_group(name.data, name.size);
int link_id = -1; int link_id = -1;
HlAttrs attrs = dict2hlattrs(val, true, &link_id, err); HlAttrs attrs = dict2hlattrs(val, true, &link_id, err);

View File

@ -10,6 +10,7 @@
#include "nvim/api/private/helpers.h" #include "nvim/api/private/helpers.h"
#include "nvim/api/win_config.h" #include "nvim/api/win_config.h"
#include "nvim/ascii.h" #include "nvim/ascii.h"
#include "nvim/highlight_group.h"
#include "nvim/option.h" #include "nvim/option.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/strings.h" #include "nvim/strings.h"

View File

@ -51,6 +51,7 @@
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/hashtab.h" #include "nvim/hashtab.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/indent.h" #include "nvim/indent.h"
#include "nvim/indent_c.h" #include "nvim/indent_c.h"
#include "nvim/main.h" #include "nvim/main.h"

View File

@ -9,8 +9,8 @@
#include "nvim/charset.h" #include "nvim/charset.h"
#include "nvim/cursor_shape.h" #include "nvim/cursor_shape.h"
#include "nvim/ex_getln.h" #include "nvim/ex_getln.h"
#include "nvim/highlight_group.h"
#include "nvim/strings.h" #include "nvim/strings.h"
#include "nvim/syntax.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/vim.h" #include "nvim/vim.h"
@ -226,11 +226,11 @@ char *parse_shape_opt(int what)
slashp = vim_strchr(p, '/'); slashp = vim_strchr(p, '/');
if (slashp != NULL && slashp < endp) { if (slashp != NULL && slashp < endp) {
// "group/langmap_group" // "group/langmap_group"
i = syn_check_group((char *)p, (int)(slashp - p)); i = syn_check_group((char *)p, (size_t)(slashp - p));
p = slashp + 1; p = slashp + 1;
} }
if (round == 2) { if (round == 2) {
shape_table[idx].id = syn_check_group((char *)p, (int)(endp - p)); shape_table[idx].id = syn_check_group((char *)p, (size_t)(endp - p));
shape_table[idx].id_lm = shape_table[idx].id; shape_table[idx].id_lm = shape_table[idx].id;
if (slashp != NULL && slashp < endp) { if (slashp != NULL && slashp < endp) {
shape_table[idx].id = i; shape_table[idx].id = i;

View File

@ -5,10 +5,10 @@
#include "nvim/decoration.h" #include "nvim/decoration.h"
#include "nvim/extmark.h" #include "nvim/extmark.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/move.h" #include "nvim/move.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/syntax.h"
#include "nvim/vim.h" #include "nvim/vim.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS #ifdef INCLUDE_GENERATED_DECLARATIONS

View File

@ -26,6 +26,7 @@
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/fold.h" #include "nvim/fold.h"
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight_group.h"
#include "nvim/indent.h" #include "nvim/indent.h"
#include "nvim/indent_c.h" #include "nvim/indent_c.h"
#include "nvim/keymap.h" #include "nvim/keymap.h"

View File

@ -33,6 +33,7 @@
#include "nvim/ex_session.h" #include "nvim/ex_session.h"
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight_group.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/mark.h" #include "nvim/mark.h"
#include "nvim/memline.h" #include "nvim/memline.h"

View File

@ -31,6 +31,7 @@
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/fold.h" #include "nvim/fold.h"
#include "nvim/globals.h" #include "nvim/globals.h"
#include "nvim/highlight_group.h"
#include "nvim/if_cscope.h" #include "nvim/if_cscope.h"
#include "nvim/indent.h" #include "nvim/indent.h"
#include "nvim/indent_c.h" #include "nvim/indent_c.h"

View File

@ -38,6 +38,7 @@
#include "nvim/garray.h" #include "nvim/garray.h"
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/indent.h" #include "nvim/indent.h"
#include "nvim/input.h" #include "nvim/input.h"
#include "nvim/log.h" #include "nvim/log.h"

View File

@ -38,6 +38,7 @@
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/globals.h" #include "nvim/globals.h"
#include "nvim/hardcopy.h" #include "nvim/hardcopy.h"
#include "nvim/highlight_group.h"
#include "nvim/if_cscope.h" #include "nvim/if_cscope.h"
#include "nvim/input.h" #include "nvim/input.h"
#include "nvim/keymap.h" #include "nvim/keymap.h"

View File

@ -35,6 +35,7 @@
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_defs.h" #include "nvim/highlight_defs.h"
#include "nvim/highlight_group.h"
#include "nvim/if_cscope.h" #include "nvim/if_cscope.h"
#include "nvim/indent.h" #include "nvim/indent.h"
#include "nvim/keymap.h" #include "nvim/keymap.h"

View File

@ -361,6 +361,11 @@ EXTERN int provider_call_nesting INIT(= 0);
EXTERN int t_colors INIT(= 256); // int value of T_CCO EXTERN int t_colors INIT(= 256); // int value of T_CCO
// Flags to indicate an additional string for highlight name completion.
EXTERN int include_none INIT(= 0); // when 1 include "None"
EXTERN int include_default INIT(= 0); // when 1 include "default"
EXTERN int include_link INIT(= 0); // when 2 include "link" and "clear"
// When highlight_match is true, highlight a match, starting at the cursor // When highlight_match is true, highlight a match, starting at the cursor
// position. Search_match_lines is the number of lines after the match (0 for // position. Search_match_lines is the number of lines after the match (0 for
// a match within one line), search_match_endcol the column number of the // a match within one line), search_match_endcol the column number of the

View File

@ -22,6 +22,7 @@
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/garray.h" #include "nvim/garray.h"
#include "nvim/hardcopy.h" #include "nvim/hardcopy.h"
#include "nvim/highlight_group.h"
#include "nvim/mbyte.h" #include "nvim/mbyte.h"
#include "nvim/memline.h" #include "nvim/memline.h"
#include "nvim/memory.h" #include "nvim/memory.h"

View File

@ -8,13 +8,13 @@
#include "nvim/decoration_provider.h" #include "nvim/decoration_provider.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_defs.h" #include "nvim/highlight_defs.h"
#include "nvim/highlight_group.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/map.h" #include "nvim/map.h"
#include "nvim/message.h" #include "nvim/message.h"
#include "nvim/option.h" #include "nvim/option.h"
#include "nvim/popupmnu.h" #include "nvim/popupmnu.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/syntax.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/vim.h" #include "nvim/vim.h"

2799
src/nvim/highlight_group.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
#ifndef NVIM_HIGHLIGHT_GROUP_H
#define NVIM_HIGHLIGHT_GROUP_H
#include "nvim/types.h"
#include "nvim/eval.h"
#define MAX_HL_ID 20000 // maximum value for a highlight ID.
typedef struct {
char *name;
RgbValue color;
} color_name_table_T;
extern color_name_table_T color_name_table[];
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "highlight_group.h.generated.h"
#endif
#endif // NVIM_HIGHLIGHT_GROUP_H

View File

@ -25,6 +25,7 @@
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/hashtab.h" #include "nvim/hashtab.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/iconv.h" #include "nvim/iconv.h"
#include "nvim/if_cscope.h" #include "nvim/if_cscope.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"

View File

@ -13,6 +13,7 @@
#include "nvim/decoration_provider.h" #include "nvim/decoration_provider.h"
#include "nvim/eval.h" #include "nvim/eval.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
#include "nvim/memfile.h" #include "nvim/memfile.h"
#include "nvim/memory.h" #include "nvim/memory.h"

View File

@ -47,6 +47,7 @@
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/hardcopy.h" #include "nvim/hardcopy.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/indent_c.h" #include "nvim/indent_c.h"
#include "nvim/keymap.h" #include "nvim/keymap.h"
#include "nvim/macros.h" #include "nvim/macros.h"
@ -3853,7 +3854,7 @@ static bool parse_winhl_opt(win_T *wp)
size_t nlen = (size_t)(colon-p); size_t nlen = (size_t)(colon-p);
char *hi = colon+1; char *hi = colon+1;
char *commap = xstrchrnul(hi, ','); char *commap = xstrchrnul(hi, ',');
int len = (int)(commap-hi); size_t len = (size_t)(commap-hi);
int hl_id = len ? syn_check_group(hi, len) : -1; int hl_id = len ? syn_check_group(hi, len) : -1;
if (strncmp("Normal", p, nlen) == 0) { if (strncmp("Normal", p, nlen) == 0) {

View File

@ -22,6 +22,7 @@
#include "nvim/ex_getln.h" #include "nvim/ex_getln.h"
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/fold.h" #include "nvim/fold.h"
#include "nvim/highlight_group.h"
#include "nvim/mark.h" #include "nvim/mark.h"
#include "nvim/mbyte.h" #include "nvim/mbyte.h"
#include "nvim/memline.h" #include "nvim/memline.h"
@ -39,7 +40,6 @@
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/search.h" #include "nvim/search.h"
#include "nvim/strings.h" #include "nvim/strings.h"
#include "nvim/syntax.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/vim.h" #include "nvim/vim.h"
#include "nvim/window.h" #include "nvim/window.h"

View File

@ -88,6 +88,7 @@
#include "nvim/garray.h" #include "nvim/garray.h"
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/indent.h" #include "nvim/indent.h"
#include "nvim/lib/kvec.h" #include "nvim/lib/kvec.h"
#include "nvim/log.h" #include "nvim/log.h"

View File

@ -13,6 +13,7 @@
#include "nvim/edit.h" #include "nvim/edit.h"
#include "nvim/ex_docmd.h" #include "nvim/ex_docmd.h"
#include "nvim/fold.h" #include "nvim/fold.h"
#include "nvim/highlight_group.h"
#include "nvim/move.h" #include "nvim/move.h"
#include "nvim/option.h" #include "nvim/option.h"
#include "nvim/screen.h" #include "nvim/screen.h"
@ -954,7 +955,7 @@ int sign_define_by_name(char_u *name, char_u *icon, char_u *linehl, char_u *text
if (*linehl == NUL) { if (*linehl == NUL) {
sp->sn_line_hl = 0; sp->sn_line_hl = 0;
} else { } else {
sp->sn_line_hl = syn_check_group((char *)linehl, (int)STRLEN(linehl)); sp->sn_line_hl = syn_check_group((char *)linehl, STRLEN(linehl));
} }
} }
@ -962,7 +963,7 @@ int sign_define_by_name(char_u *name, char_u *icon, char_u *linehl, char_u *text
if (*texthl == NUL) { if (*texthl == NUL) {
sp->sn_text_hl = 0; sp->sn_text_hl = 0;
} else { } else {
sp->sn_text_hl = syn_check_group((char *)texthl, (int)STRLEN(texthl)); sp->sn_text_hl = syn_check_group((char *)texthl, STRLEN(texthl));
} }
} }
@ -970,7 +971,7 @@ int sign_define_by_name(char_u *name, char_u *icon, char_u *linehl, char_u *text
if (*culhl == NUL) { if (*culhl == NUL) {
sp->sn_cul_hl = 0; sp->sn_cul_hl = 0;
} else { } else {
sp->sn_cul_hl = syn_check_group((char *)culhl, (int)STRLEN(culhl)); sp->sn_cul_hl = syn_check_group((char *)culhl, STRLEN(culhl));
} }
} }
@ -978,7 +979,7 @@ int sign_define_by_name(char_u *name, char_u *icon, char_u *linehl, char_u *text
if (*numhl == NUL) { if (*numhl == NUL) {
sp->sn_num_hl = 0; sp->sn_num_hl = 0;
} else { } else {
sp->sn_num_hl = syn_check_group(numhl, (int)STRLEN(numhl)); sp->sn_num_hl = syn_check_group(numhl, STRLEN(numhl));
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -29,12 +29,6 @@
#define SYN_GROUP_STATIC(s) syn_check_group(S_LEN(s)) #define SYN_GROUP_STATIC(s) syn_check_group(S_LEN(s))
typedef struct {
char *name;
RgbValue color;
} color_name_table_T;
extern color_name_table_T color_name_table[];
/// Array of highlight definitions, used for unit testing /// Array of highlight definitions, used for unit testing
extern const char *const highlight_init_cmdline[]; extern const char *const highlight_init_cmdline[];

View File

@ -55,6 +55,7 @@
#include "nvim/fileio.h" #include "nvim/fileio.h"
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/keymap.h" #include "nvim/keymap.h"
#include "nvim/log.h" #include "nvim/log.h"
#include "nvim/macros.h" #include "nvim/macros.h"
@ -70,7 +71,6 @@
#include "nvim/os/input.h" #include "nvim/os/input.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/state.h" #include "nvim/state.h"
#include "nvim/syntax.h"
#include "nvim/terminal.h" #include "nvim/terminal.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/vim.h" #include "nvim/vim.h"

View File

@ -14,6 +14,7 @@
#include "nvim/api/private/helpers.h" #include "nvim/api/private/helpers.h"
#include "nvim/ascii.h" #include "nvim/ascii.h"
#include "nvim/highlight.h" #include "nvim/highlight.h"
#include "nvim/highlight_group.h"
#include "nvim/lib/kvec.h" #include "nvim/lib/kvec.h"
#include "nvim/log.h" #include "nvim/log.h"
#include "nvim/lua/executor.h" #include "nvim/lua/executor.h"
@ -23,7 +24,6 @@
#include "nvim/os/os.h" #include "nvim/os/os.h"
#include "nvim/popupmnu.h" #include "nvim/popupmnu.h"
#include "nvim/screen.h" #include "nvim/screen.h"
#include "nvim/syntax.h"
#include "nvim/ugrid.h" #include "nvim/ugrid.h"
#include "nvim/ui.h" #include "nvim/ui.h"
#include "nvim/ui_compositor.h" #include "nvim/ui_compositor.h"

View File

@ -25,6 +25,7 @@
#include "nvim/getchar.h" #include "nvim/getchar.h"
#include "nvim/globals.h" #include "nvim/globals.h"
#include "nvim/hashtab.h" #include "nvim/hashtab.h"
#include "nvim/highlight_group.h"
#include "nvim/main.h" #include "nvim/main.h"
#include "nvim/mark.h" #include "nvim/mark.h"
#include "nvim/memline.h" #include "nvim/memline.h"