neovim/runtime/doc
Lewis Russell 3734519e3b feat(lua): add noref to deepcopy
Problem:

Currently `deepcopy` hashes every single tables it copies so it can be
reused. For tables of mostly unique items that are non recursive, this
hashing is unnecessarily expensive

Solution:

Port the `noref` argument from Vimscripts `deepcopy()`.

The below benchmark demonstrates the results for two extreme cases of
tables of different sizes. One table that uses the same table lots of
times and one with all unique tables.

| test                 | `noref=false` (ms) | `noref=true` (ms) |
| -------------------- | ------------------ | ----------------- |
| unique tables (50)   | 6.59               | 2.62              |
| shared tables (50)   | 3.24               | 6.40              |
| unique tables (2000) | 23381.48           | 2884.53           |
| shared tables (2000) | 3505.54            | 14038.80          |

The results are basically the inverse of each other where `noref` is
much more performance on tables with unique fields, and `not noref` is
more performant on tables that reuse fields.
2024-01-03 19:17:52 +00:00
..
api.txt docs: clarify on_bytes arguments 2024-01-01 12:20:19 +01:00
arabic.txt docs: remove trailing spaces #24455 2023-07-25 05:07:13 -07:00
autocmd.txt docs: small fixes (#26243) 2023-12-06 08:04:21 +08:00
backers.txt docs: convert BACKERS.md to backers.txt 2023-12-28 22:41:01 +01:00
builtin.txt feat(ui): completeopt support popup like vim 2023-12-16 18:59:59 +08:00
change.txt vim-patch:955652f6df9c (#26667) 2023-12-20 07:02:48 +08:00
channel.txt docs: small fixes (#25585) 2023-10-29 16:02:32 +08:00
cmdline.txt vim-patch:61e984e212ed (#26484) 2023-12-09 15:35:45 +08:00
debug.txt
deprecated.txt feature(diagnostic): add vim.diagnostic.count() (#26807) 2024-01-01 15:03:50 -06:00
dev_style.txt build: remove clint checks and style text covered by uncrustify 2023-12-24 20:50:44 +01:00
dev_theme.txt feat(highlight): tweak default color scheme 2023-12-16 14:43:03 +01:00
dev_tools.txt docs: fix links 2023-12-13 20:31:16 +01:00
dev_vimpatch.txt docs: fix links 2023-12-13 20:31:16 +01:00
develop.txt docs: small fixes 2024-01-02 22:00:06 +01:00
diagnostic.txt feature(diagnostic): add vim.diagnostic.count() (#26807) 2024-01-01 15:03:50 -06:00
diff.txt vim-patch:partial:6f4754b9f725 2023-04-17 15:46:24 +08:00
digraph.txt vim-patch:9.0.2056: no digraph for quadruple prime 2023-10-20 13:03:36 +02:00
editing.txt feat: ignore swapfile for running Nvim processes #25336 2023-10-04 06:31:25 -07:00
editorconfig.txt docs: small fixes (#26243) 2023-12-06 08:04:21 +08:00
eval.txt docs: move vim-variables to separate file 2023-12-21 14:19:10 +00:00
faq.txt docs: fix links 2023-12-13 20:31:16 +01:00
filetype.txt vim-patch:10b4f75d4c03 (#26846) 2024-01-02 19:06:43 +08:00
fold.txt feat(folds): support virtual text format for 'foldtext' (#25209) 2023-09-17 20:29:18 +08:00
ft_ada.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
ft_ps1.txt
ft_raku.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
ft_rust.txt docs: small fixes (#25585) 2023-10-29 16:02:32 +08:00
ft_sql.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
gui.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
hebrew.txt feat(edit)!: remove old c implementation of hebrew keymap 2023-02-28 15:14:03 +01:00
help.txt docs: move vim-patch wiki page to runtime documentation 2023-12-13 18:31:05 +01:00
helphelp.txt docs: fix misparsed headings (#24162) 2023-06-26 11:16:55 +02:00
if_perl.txt test: spellcheck :help (vimdoc) files #24109 2023-06-22 03:44:51 -07:00
if_pyth.txt docs: remove trailing spaces #24455 2023-07-25 05:07:13 -07:00
if_ruby.txt vim-patch:8.2.0578: heredoc for interfaces does not support "trim" 2023-04-29 09:20:52 +08:00
indent.txt vim-patch:d96f25bd69c1 2023-12-30 10:53:31 +01:00
index.txt vim-patch:2bbd0d30eebd (#25637) 2023-10-14 19:28:41 +08:00
insert.txt docs: small improvements to compl-autocomplete example (#25299) 2023-09-22 06:51:47 +08:00
intro.txt docs: add wiki FAQ to the runtime documentation (#26539) 2023-12-13 17:31:39 +01:00
job_control.txt docs: small fixes 2023-05-13 21:33:22 +02:00
lsp.txt docs(lsp): add supports_method to vim.lsp.client docs (#26852) 2024-01-02 18:52:29 +01:00
lua-guide.txt docs: small fixes (#26243) 2023-12-06 08:04:21 +08:00
lua.txt feat(lua): add noref to deepcopy 2024-01-03 19:17:52 +00:00
luaref.txt docs: small fixes 2024-01-02 22:00:06 +01:00
luvref.txt docs(luv): correct uv.spawn options.args docs about the first argument 2023-09-02 16:58:19 +02:00
map.txt vim-patch:8.2.4861: it is not easy to restore saved mappings 2023-11-09 21:34:04 +08:00
mbyte.txt refactor(grid): make screen rendering more multibyte than ever before 2023-11-17 12:58:57 +01:00
message.txt vim-patch:9.0.2183: Maximum callback depth is not configurable (#26703) 2023-12-22 10:33:34 +08:00
mlang.txt docs: fix/remove invalid URLs #20647 2022-10-14 08:01:13 -07:00
motion.txt vim-patch:65672ae1189e (#26767) 2023-12-28 08:48:03 +08:00
news-0.9.txt docs: do not hardcode LSP version in URL #25648 2023-10-16 08:13:37 -07:00
news.txt feat(lua): add noref to deepcopy 2024-01-03 19:17:52 +00:00
nvim_terminal_emulator.txt docs: small fixes (#26448) 2023-12-19 13:29:13 +08:00
nvim.txt docs #20986 2022-12-11 18:41:26 -08:00
options.txt refactor(cpoptions): remove 'p' 2023-12-25 14:13:52 +01:00
pattern.txt vim-patch:d3e277f279ed (#25734) 2023-10-21 18:04:08 +08:00
pi_gzip.txt vim-patch:30c762d99ac8 2023-11-14 23:29:09 +01:00
pi_health.txt fix(health): replace healthFoo with DiagnosticFoo (#23475) 2023-05-05 18:15:44 +02:00
pi_msgpack.txt vim-patch:9.0.1335: no test for bad use of spaces in help files (#24483) 2023-07-25 20:58:09 +08:00
pi_netrw.txt feat(defaults): set g:netrw_use_errorwindow = 0 #24179 2023-06-29 14:14:14 -07:00
pi_paren.txt
pi_spec.txt docs: fix treesitter parsing errors 2023-01-01 15:05:13 +01:00
pi_tar.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
pi_tutor.txt
pi_zip.txt vim-patch:da4e433dc3be (#25912) 2023-11-06 19:03:08 +08:00
provider.txt fix(osc52): enable OSC 52 by default in tmux sessions (#26072) 2023-11-16 13:56:05 -06:00
quickfix.txt vim-patch:9.0.2064: cannot use buffer-number for errorformat (#25782) 2023-10-26 07:42:29 +08:00
quickref.txt docs: small fixes (#26243) 2023-12-06 08:04:21 +08:00
recover.txt feat: ignore swapfile for running Nvim processes #25336 2023-10-04 06:31:25 -07:00
remote_plugin.txt docs: small fixes 2023-10-10 19:20:32 +02:00
remote.txt vim-patch:partial:938ae280c79b (#22356) 2023-02-21 23:50:29 +08:00
repeat.txt feat(defaults): map Q and @x to repeat in Visual mode (#26495) 2023-12-27 07:26:18 +08:00
rileft.txt docs: fix treesitter parsing errors 2023-01-01 15:05:13 +01:00
russian.txt docs #24061 2023-06-19 08:40:33 -07:00
scroll.txt vim-patch:5277cfaf8afe (#25397) 2023-09-28 05:22:09 +08:00
sign.txt docs: small fixes (#26154) 2023-11-27 17:43:13 +08:00
spell.txt vim-patch:10e8ff9b2607 (#23977) 2023-06-11 12:40:22 +01:00
starting.txt docs(starting.txt): correct step number (#26185) 2023-11-24 07:19:06 +08:00
support.txt docs: fix typos 2023-04-04 19:07:33 +02:00
syntax.txt vim-patch:d96f25bd69c1 2023-12-30 10:53:31 +01:00
tabpage.txt docs: fix typos (#20150) 2022-09-26 17:43:23 +08:00
tagsrch.txt docs: remove trailing spaces #24455 2023-07-25 05:07:13 -07:00
term.txt docs(term): use tic -x for better compatibility with old ncurses (#25421) 2023-09-29 10:57:02 -05:00
testing.txt fix(lua): improve annotations for stricter luals diagnostics (#24609) 2023-08-09 11:06:13 +02:00
tips.txt vim-patch:6a500661a9cb 2023-08-10 17:28:02 +08:00
treesitter.txt docs: apply current colorscheme to default highlight groups 2023-12-20 18:58:40 +01:00
uganda.txt vim-patch:e978b4534a5e (#24697) 2023-08-13 13:25:10 +01:00
ui.txt docs: deprecate the "term_background" UI field 2023-11-13 19:04:47 -06:00
undo.txt vim-patch:9.0.1683: Updated runtime files (#24638) 2023-08-10 17:45:36 +08:00
userfunc.txt vim-patch:9.0.2059: outstanding exceptions may be skipped (#25736) 2023-10-21 18:46:52 +08:00
usr_01.txt vim-patch:b7398fe41c9e (#23627) 2023-05-15 09:38:32 +02:00
usr_02.txt refactor(options)!: graduate some more shortmess flags 2023-09-25 18:23:15 +02:00
usr_03.txt vim-patch:71badf9547e8 (#23285) 2023-04-23 15:22:55 +02:00
usr_04.txt
usr_05.txt vim-patch:81b8bf5b4a33 2023-08-10 17:28:04 +08:00
usr_06.txt feat!: remove hardcopy 2023-01-03 10:07:43 +00:00
usr_07.txt
usr_08.txt docs(manual): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
usr_09.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
usr_10.txt docs(manual): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
usr_11.txt docs #24061 2023-06-19 08:40:33 -07:00
usr_12.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
usr_20.txt docs(manual): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
usr_21.txt docs: remove trailing spaces #24455 2023-07-25 05:07:13 -07:00
usr_22.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
usr_23.txt
usr_24.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
usr_25.txt docs(manual): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
usr_26.txt
usr_27.txt
usr_28.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
usr_29.txt fix(docs): vimdoc syntax errors 2023-06-26 11:29:12 +02:00
usr_30.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
usr_31.txt
usr_32.txt docs(manual): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
usr_40.txt fix(docs): vimdoc syntax errors 2023-06-26 11:29:12 +02:00
usr_41.txt vim-patch:8.2.4825: can only get a list of mappings 2023-11-09 21:34:04 +08:00
usr_42.txt docs(manual): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
usr_43.txt docs: remove trailing spaces #24455 2023-07-25 05:07:13 -07:00
usr_44.txt
usr_45.txt docs #24061 2023-06-19 08:40:33 -07:00
usr_toc.txt feat!: remove hardcopy 2023-01-03 10:07:43 +00:00
various.txt Use Lua autocommand and make TermClose autocommand global 2023-08-10 09:53:56 -05:00
vi_diff.txt fix(docs): vimdoc syntax errors 2023-06-25 17:14:28 +02:00
vim_diff.txt feat(defaults): map Q and @x to repeat in Visual mode (#26495) 2023-12-27 07:26:18 +08:00
visual.txt feat(defaults): map Q and @x to repeat in Visual mode (#26495) 2023-12-27 07:26:18 +08:00
vvars.txt feat: generate types and docs for v variables 2023-12-21 14:19:10 +00:00
windows.txt feat(health): make :checkhealth support more split modifiers (#26731) 2023-12-25 10:21:13 +08:00