mirror of
https://github.com/neovim/neovim.git
synced 2025-10-06 01:46:29 +00:00
shada/linting: Moved some code out of shada_write.
shada_write was too long (over 500 lines) and caused a linting error. Register initialization was moved to its own function in order to save lines.
This commit is contained in:
@@ -2329,6 +2329,46 @@ static inline void add_search_pattern(PossiblyFreedShadaEntry *const ret_pse,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Initializes registers for writing to the ShaDa file
|
||||||
|
///
|
||||||
|
/// @param[in] wms The WriteMergerState used when writing.
|
||||||
|
/// @param[in] max_reg_lines The maximum number of register lines.
|
||||||
|
static void shada_initialize_registers(WriteMergerState *const wms,
|
||||||
|
int max_reg_lines) {
|
||||||
|
const void *reg_iter = NULL;
|
||||||
|
const bool limit_reg_lines = max_reg_lines >= 0;
|
||||||
|
do {
|
||||||
|
yankreg_T reg;
|
||||||
|
char name = NUL;
|
||||||
|
bool is_unnamed = false;
|
||||||
|
reg_iter = op_register_iter(reg_iter, &name, ®, &is_unnamed);
|
||||||
|
if (name == NUL) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (limit_reg_lines && reg.y_size > max_reg_lines) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
wms->registers[op_reg_index(name)] = (PossiblyFreedShadaEntry) {
|
||||||
|
.can_free_entry = false,
|
||||||
|
.data = {
|
||||||
|
.type = kSDItemRegister,
|
||||||
|
.timestamp = reg.timestamp,
|
||||||
|
.data = {
|
||||||
|
.reg = {
|
||||||
|
.contents = (char **) reg.y_array,
|
||||||
|
.contents_size = (size_t) reg.y_size,
|
||||||
|
.type = reg.y_type,
|
||||||
|
.width = (size_t) (reg.y_type == kMTBlockWise ? reg.y_width : 0),
|
||||||
|
.additional_data = reg.additional_data,
|
||||||
|
.name = name,
|
||||||
|
.is_unnamed = is_unnamed,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} while (reg_iter != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/// Write ShaDa file
|
/// Write ShaDa file
|
||||||
///
|
///
|
||||||
/// @param[in] sd_writer Structure containing file writer definition.
|
/// @param[in] sd_writer Structure containing file writer definition.
|
||||||
@@ -2355,7 +2395,6 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer,
|
|||||||
if (max_reg_lines < 0) {
|
if (max_reg_lines < 0) {
|
||||||
max_reg_lines = get_shada_parameter('"');
|
max_reg_lines = get_shada_parameter('"');
|
||||||
}
|
}
|
||||||
const bool limit_reg_lines = max_reg_lines >= 0;
|
|
||||||
const bool dump_registers = (max_reg_lines != 0);
|
const bool dump_registers = (max_reg_lines != 0);
|
||||||
khash_t(bufset) removable_bufs = KHASH_EMPTY_TABLE(bufset);
|
khash_t(bufset) removable_bufs = KHASH_EMPTY_TABLE(bufset);
|
||||||
const size_t max_kbyte = (size_t) max_kbyte_i;
|
const size_t max_kbyte = (size_t) max_kbyte_i;
|
||||||
@@ -2598,37 +2637,7 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer,
|
|||||||
|
|
||||||
// Initialize registers
|
// Initialize registers
|
||||||
if (dump_registers) {
|
if (dump_registers) {
|
||||||
const void *reg_iter = NULL;
|
shada_initialize_registers(wms, max_reg_lines);
|
||||||
do {
|
|
||||||
yankreg_T reg;
|
|
||||||
char name = NUL;
|
|
||||||
bool is_unnamed = false;
|
|
||||||
reg_iter = op_register_iter(reg_iter, &name, ®, &is_unnamed);
|
|
||||||
if (name == NUL) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (limit_reg_lines && reg.y_size > (size_t)max_reg_lines) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
wms->registers[op_reg_index(name)] = (PossiblyFreedShadaEntry) {
|
|
||||||
.can_free_entry = false,
|
|
||||||
.data = {
|
|
||||||
.type = kSDItemRegister,
|
|
||||||
.timestamp = reg.timestamp,
|
|
||||||
.data = {
|
|
||||||
.reg = {
|
|
||||||
.contents = (char **) reg.y_array,
|
|
||||||
.contents_size = (size_t) reg.y_size,
|
|
||||||
.type = reg.y_type,
|
|
||||||
.width = (size_t) (reg.y_type == kMTBlockWise ? reg.y_width : 0),
|
|
||||||
.additional_data = reg.additional_data,
|
|
||||||
.name = name,
|
|
||||||
.is_unnamed = is_unnamed,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} while (reg_iter != NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize buffers
|
// Initialize buffers
|
||||||
|
Reference in New Issue
Block a user