aboutsummaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAge
* feat(docs): replace lua2dox.luaLewis Russell2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The documentation flow (`gen_vimdoc.py`) has several issues: - it's not very versatile - depends on doxygen - doesn't work well with Lua code as it requires an awkward filter script to convert it into pseudo-C. - The intermediate XML files and filters makes it too much like a rube goldberg machine. Solution: Re-implement the flow using Lua, LPEG and treesitter. - `gen_vimdoc.py` is now replaced with `gen_vimdoc.lua` and replicates a portion of the logic. - `lua2dox.lua` is gone! - No more XML files. - Doxygen is now longer used and instead we now use: - LPEG for comment parsing (see `scripts/luacats_grammar.lua` and `scripts/cdoc_grammar.lua`). - LPEG for C parsing (see `scripts/cdoc_parser.lua`) - Lua patterns for Lua parsing (see `scripts/luacats_parser.lua`). - Treesitter for Markdown parsing (see `scripts/text_utils.lua`). - The generated `runtime/doc/*.mpack` files have been removed. - `scripts/gen_eval_files.lua` now instead uses `scripts/cdoc_parser.lua` directly. - Text wrapping is implemented in `scripts/text_utils.lua` and appears to produce more consistent results (the main contributer to the diff of this change).
* docs(builtin): show tag at first line with multiple signatures (#27577)zeertzjq2024-02-22
| | | | | | | | Problem: When a function has multiple signatures, putting its tag at the last one may make one think that's its only signature. Solution: When a function has multiple signatures, put its tag at the first one.
* fix(lsp): add parentheses to generated union array types (#27560)Maria José Solano2024-02-21
|
* build(vim-patch.sh): don't add vim/vim to issue of another repo (#27493)zeertzjq2024-02-16
|
* refactor(api): use keydict and arena for more api return valuesbfredl2024-02-08
| | | | | | | Implement api_keydict_to_dict as the complement to api_dict_to_keydict Fix a conversion error when nvim_get_win_config gets called from lua, where Float values "x" and "y" didn't get converted to lua numbers.
* fix(doc): prevent doxygen confusionLewis Russell2024-02-06
|
* build: various fixesdundargoc2024-02-01
| | | | | | | - Consistently use the variable CMAKE_BUILD_TYPE to select build type. - Remove broken `doc_html` target. - Remove swap files created by oldtest when cleaning. - Only rerun `lintdoc` if any documentation files has changed.
* build: update builtin terminfo (#27272)zeertzjq2024-01-31
| | | | | - Update to ncurses 6.4.20230520 - Disable smglp and smgrp for vtpcon and conemu - Add xterm+sl to vtpcon, fix #26880
* fix(gen_help_html): type warnings, spell_ignore_files #27254Jongwook Choi2024-01-29
| | | | | - Add type annotations, fix most of the type warnings. - Fix a minor bug on `spell_ignore_files`: nil error when an invalid spelling is found but the file is not ignored.
* docs: enforce "treesitter" spelling #27110Jongwook Choi2024-01-28
| | | It's the "tree-sitter" project, but "treesitter" in our code and docs.
* build(docs): separate lint job to validate vimdoc #27227Jongwook Choi2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Separate the lint job (`make lintdoc`) to validate runtime/doc, it is no longer as a part of functionaltest (help_spec). Build (cmake) and CI: - `make lintdoc`: validate vimdoc files and test-generate HTML docs. CI will run this as a part of the "docs" workflow. - `scripts/lintdoc.lua` is added as an entry point (executable script) for validating vimdoc files. scripts/gen_help_html.lua: - Move the tests for validating docs and generating HTMLs from `help_spec.lua` to `gen_help_html`. Added: - `gen_help_html.run_validate()`. - `gen_help_html.test_gen()`. - Do not hard-code `help_dir` to `build/runtime/doc`, but resolve from `$VIMRUNTIME`. Therefore, the `make lintdoc` job will check doc files on `./runtime/doc`, not on `./build/runtime/doc`. - Add type annotations for gen_help_html.
* feat: improve return type annotations for vim.api.*Lewis Russell2024-01-26
|
* build: make genappimage.sh work with existing CMAKE_INSTALL_PREFIXdundargoc2024-01-22
| | | | | | Using CMAKE_INSTALL_PREFIX is unreliable as it's a cache variable, meaning the users previous value will be used if not supplied. Instead, use the `--prefix` flag which is guaranteed to always work.
* Merge pull request #27076 from glepnir/extmark_hlgroupbfredl2024-01-22
|\ | | | | refactor(api): use hl id directly in nvim_buf_set_extmark
| * refactor(api): give "hl_group" more accurate _meta typebfredl2024-01-22
| | | | | | | | | | These can either be number or string in lua, so we can specify this directly as "number|string".
* | fix(lsp): clean up duplicate and unused meta type annotationsJongwook Choi2024-01-20
|/
* fix(lua): return after assert returns assert message (#27064)altermo2024-01-17
|
* fix(diagnostic): typingLewis Russell2024-01-16
|
* docs(builtin): overload functions with union return typesaltermo2024-01-14
|
* fix(lua2dox): filter out the entire `---@alias` blockJongwook Choi2024-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Any preceding luadocs block that define alias types with `@alias` magic would be prepended to the documentation of functions that follow, despite the "blank line" separator. For example: ``` --- @alias some.type.between.functions --- Blah blah long documentation for alias --- | "foo" # foo --- | "bar" # bar --- The documentation that should appear in vimdoc. function M.function_to_include_in_doc() ... end ``` then the vimdoc generated for `function_to_include_in_doc` would include the text from the alias block (e.g., "Blah blah ... for alias"). Solution: - refactor: Lua2DoxFilter should maintain its own internal state `generics`, rather than carrying it as a parameter to local helper functions. - Add another boolean state `boolean_state` which represents whether to ignore the current docstring block (magic lines). This flag will be reset as soon as the block is end. Note: As expected, there is no change at all in the current docs generated, because we have been working around and writing luadoc comments so that such erroneous docstring resulting from preceding `@alias` blocks won't appear.
* docs: auto-generate docs for `vim.lpeg` and `vim.re`Jongwook Choi2024-01-14
| | | | | | | | | | | | | | | | | - Add section `VIM.LPEG` and `VIM.RE` to docs/lua.txt. - Add `_meta/re.lua` which adds luadoc and type annotations, for the vendored `vim.re` package. - Fix minor style issues on `_meta/lpeg.lua` luadoc for better vimdocs generation. - Fix a bug on `gen_vimdoc` where non-helptags in verbatim code blocks were parsed as helptags, affecting code examples on `vim.lpeg.Cf`, etc. - Also move the `vim.regex` section below so that it can be located closer to `vim.lpeg` and `vim.re`.
* fix(doc): improve doc generation of types using lpegLewis Russell2024-01-11
| | | | Added a lpeg grammar for LuaCATS and use it in lua2dox.lua
* fix(docs): make lines not overflow in vim docsJongwook Choi2024-01-09
| | | | | | | | | Problem: Some lines in the generated vim doc are overflowing, not correctly wrapped at 78 characters. This happens when docs body contains several consecutive 'inline' elements generated by doxygen. Solution: Take into account the current column offset of the last line, and prepend some padding before doc_wrap().
* fix(gen_vimdoc): INCLUDE_DEPRECATED not generating docs for deprecatedsJongwook Choi2024-01-02
| | | | | | Since some point INCLUDE_DEPRECATED stopped working as it is usually turned off when generating an actual vimdoc. This commit fixes this hidden feature back again (used for devel purposes only).
* refactor(gen_vimdoc): refactor section and defgroup doc generationJongwook Choi2024-01-02
| | | | | | | | | | Problem: main() has too much logic implemented there, too difficult to read. Solution: Do more OOP, introduce `Section` dataclass that stores information about a "section", with documentation and concrete examples about what each field and variable would mean. Extract all the lines for rendering a section into `section.render()` pulled out of `main()`.
* refactor(gen_vimdoc): generate function doc from metadata, not from xmlJongwook Choi2024-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: For function definitions to be included in the vimdoc (formatted) and to be exported as mpack data (unformatted), we had two internal representations of the same function/API metadata in duplicate; one is FunctionDoc (which was previously a dict), and the other is doxygen XML DOM from which vimdoc (functions sections) was generated. Solution: We should have a single path and unified data representation (i.e. FunctionDoc) that contains all the metadata and information about function APIs, from which both of mpack export and vimdoc are generated. I.e., vimdocs are no longer generated directly from doxygen XML nodes, but generated via: (XML DOM Nodes) ------------> FunctionDoc ------> mpack (unformatted) Recursive Internal | Formatting Metadata +---> vimdoc (formatted) This refactoring eliminates the hacky and ugly use of `fmt_vimhelp` in `fmt_node_as_vimhelp()` and all other helper functions! This way, `fmt_node_as_vimhelp()` can simplified as it no longer needs to handle generating of function docs, which needs to be done only in the topmost level of recursion.
* refactor(gen_vimdoc): use typing for function API vimdoc generationJongwook Choi2024-01-02
|
* refactor(gen_vimdoc): use stronger typing for CONFIG, avoid dictJongwook Choi2024-01-02
|
* docs(glob): add glob module (#26853)Mathias Fußenegger2024-01-02
|
* docs: convert BACKERS.md to backers.txtdundargoc2023-12-28
| | | | | | There is no reason for this file to be in project root, which is crowded as is. This also fits nicely part of the ongoing work towards gathering as much of the documentation as possible into one place.
* fix(gen_lsp.lua): improve type name, and fix wrong type inheritanceJongwook Choi2023-12-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Style improvements: 1. Anonymous classes derived from `StructureLiteralType` should have a better name. The class name can be also nested. Examples: ```diff ----@field serverInfo? anonym1 +---@field serverInfo? lsp._anonym1.serverInfo ``` ```diff ----@field insertTextModeSupport? anonym26 +---@field insertTextModeSupport? lsp._anonym26.completionItem.insertTextModeSupport ``` 2. Add one separate empty line before each `@field` definition. Without these, empty lines the doc can look confusing because descriptions also may contain empty lines. See `lsp.CompletionItem` for example: ```lua ---The kind of this completion item. Based of the kind ---an icon is chosen by the editor. ---@field kind? lsp.CompletionItemKind ---Tags for this completion item. --- ---@since 3.15.0 ---@field tags? lsp.CompletionItemTag[] ``` It might feel like "Tags for this completion item" belongs to `kind`, not `tags` due to the lack of separator blank lines. The following (after this commit) should look much better: ```diff ---The kind of this completion item. Based of the kind ---an icon is chosen by the editor. ---@field kind? lsp.CompletionItemKind +--- ---Tags for this completion item. --- ---@since 3.15.0 ---@field tags? lsp.CompletionItemTag[] ``` 3. Escape some LSP-specific annotations that can't be recognized by lua-ls. It'd be better to make them visible in LSP hover doc windows. Example: `@sample ...`. Fixes: 1. A type may extend from more than one base types (as well as mixin types). Previously only the first base class was being considered, resulting incomplete base classes for `@class` definitions. Example: `InlayHintOptions` (should have both of `resolveProvider` and `workDoneProgress`, the latter is from `WorkDoneProgressOptions`) ```diff ----@class lsp.InlayHintOptions +---@class lsp.InlayHintOptions: lsp.WorkDoneProgressOptions ``` 2. Remove `<200b>` (zero-width space) unicode characters. 3. Add the missing newline at EOF.
* refactor(gen_lsp.lua): add typing for the LSP protocol JSON data modelJongwook Choi2023-12-27
| | | | | | | | | | | | | Enhance readability and intellisense by incorporating type annotations. Types are not very strict and may not encompass th entire LSP Protocol metamodel; the scope is up to what's relevant for generating type annotations for LSP (`_meta/protocol.lua`). Based on the model schema: https://raw.githubusercontent.com/microsoft/language-server-protocol/gh-pages/_specifications/lsp/3.18/metaModel/metaModel.schema.json No behavioral changes (and hence no diff on _meta/protocol.lua) should exist in this commit.
* feat: generate types and docs for v variablesLewis Russell2023-12-21
|
* refactor(options): remove option type macrosFamiu Haque2023-12-14
| | | | | | | | Problem: We have `P_(BOOL|NUM|STRING)` macros to represent an option's type, which is redundant because `OptValType` can already do that. The current implementation of option type flags is also too limited to allow adding multitype options in the future. Solution: Remove `P_(BOOL|NUM|STRING)` and replace it with a new `type_flags` attribute in `vimoption_T`. Also do some groundwork for adding multitype options in the future. Side-effects: Attempting to set an invalid keycode option (e.g. `set t_foo=123`) no longer gives an error.
* docs: move vim-patch wiki page to runtime documentationdundargoc2023-12-13
|
* docs: add wiki FAQ to the runtime documentation (#26539)dundargoc2023-12-13
| | | | | | Problem: Wiki contents are not discoverable and hard to maintain. Solution: Move FAQ to runtime docs. Co-authored-by: Christian Clason <c.clason@uni-graz.at>
* feat(gen_lsp.lua): validate CLI args #26514Jongwook Choi2023-12-11
| | | | | | | | - Improve CLI argument parsing, rejects invalid argument and commands as early as possible. Also prints USAGE in the command line. - No longer allows `--<outfile>`, use `--out <outfile>` instead. - Print a little bit of verbose messages to better know what's going on rather than remaining silent at all times. - Add type annotation `gen_lsp._opt` to avoid type warnings.
* build: enable lintlua for scripts/ dir #26391Justin M. Keyes2023-12-04
| | | | | | | | | | | Problem: We don't enable stylua for many Lua scripts. Automating code-style is an important tool for reducing time spent on accidental (non-essential) complexity. Solution: - Enable lintlua for `scripts/` directory. - Specify `call_parentheses = "Input"`, we should allow kwargs-style function invocations.
* ci(lintcommit): fix empty and period check with multiple colons (#26312)zeertzjq2023-11-30
|
* docs(lua): don't include remote-only API functions (#26266)zeertzjq2023-11-28
|
* docs: support @since for api level #25574LW2023-11-27
| | | close #25416
* feat: add vim.text module (#26069)Gregory Anders2023-11-16
|
* docs: fix vim.snippet help tags (#26068)Gregory Anders2023-11-16
|
* Revert "docs: adjust help-tag-right CSS for HTML" #26046Justin M. Keyes2023-11-14
| | | | | The style change is mostly a regression. Reverts #25858 d50274812b275edff58418b3d17868385599fc14
* docs: adjust help-tag-right CSS for HTML #25858rsynnest2023-11-14
|
* vim-patch: mark N/A 8.1 patches #26008Justin M. Keyes2023-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Numerous Vim 8.1 patches are listed by `vim-patch.sh -l`. Solution: Mark the following patches as N/A: obviated by $NVIM env var: vim-patch:8.1.0049 shell cannot tell running in a terminal window vim-patch:8.1.0050 $VIM_TERMINAL is also set when not in a terminal window 'termwinkey' is not supported by Nvim: vim-patch:8.1.0072 use of 'termwinkey' is inconsistent Nvim handles STOP signal via libuv: vim-patch:8.1.0304 no redraw when using a STOP signal on Vim and then CONT vim-patch:8.1.0312 wrong type for flags used in signal handlers Nvim does not have `parse_queued_messages`: vim-patch:8.1.0367 getchar(1) no longer processes pending messages N/A various: vim-patch:8.1.1396 'wincolor' does not apply to lines below the buffer vim-patch:8.1.1502 cannot play any sound vim-patch:8.1.1515 memory leak reported for sound when build with EXITFREE Nvim has extmarks instead of textprops: vim-patch:8.1.0579 cannot attach properties to text vim-patch:8.1.0582 text properties are not enabled vim-patch:8.1.0634 text properties cannot cross line boundaries vim-patch:8.1.0638 text property highlighting is off by one column vim-patch:8.1.0639 text properties test fails on MS-Windows vim-patch:8.1.0643 computing byte offset wrong vim-patch:8.1.0654 when deleting a line text property flags are not adjusted vim-patch:8.1.0655 when appending a line text property flags are not added vim-patch:8.1.0663 text property display wrong when 'number' is set vim-patch:8.1.0665 text property display wrong when 'spell' is set vim-patch:8.1.0667 textprop test leaves file behind vim-patch:8.1.0675 text property column in screen columns is not practical vim-patch:8.1.0676 textprop screendump test fails vim-patch:8.1.0681 text properties as not adjusted for deleted text vim-patch:8.1.0682 text properties not adjusted when backspacing replaced text vim-patch:8.1.0688 text properties are not restored by undo vim-patch:8.1.0689 undo with text properties not tested vim-patch:8.1.0690 setline() and setbufline() do not clear text properties vim-patch:8.1.0691 text properties are not adjusted for :substitute vim-patch:8.1.0694 when using text props may free memory that is not allocated vim-patch:8.1.0703 compiler warnings with 64-bit compiler vim-patch:8.1.0707 text property columns are not adjusted for changed indent vim-patch:8.1.0970 text properties test fails when 'encoding' is not utf-8 vim-patch:8.1.1035 prop_remove() second argument is not optional vim-patch:8.1.1276 cannot combine text properties with syntax highlighting vim-patch:8.1.1278 missing change for "combine" field vim-patch:8.1.1333 text properties don't always move after changes vim-patch:8.1.1337 get empty text prop when splitting line just after text prop vim-patch:8.1.1341 text properties are lost when joining lines vim-patch:8.1.1343 text properties not adjusted for Visual block mode delete vim-patch:8.1.1340 attributes from 'cursorline' overwrite textprop vim-patch:8.1.1351 text property wrong after :substitute vim-patch:8.1.1359 text property wrong after :substitute with backslash vim-patch:8.1.1387 calling prop_add() in an empty buffer doesn't work vim-patch:8.1.1388 errors when calling prop_remove() for an unloaded buffer vim-patch:8.1.1463 gcc warns for uninitialized variable N/A Nvim has buf_attach instead of "listeners": vim-patch:8.1.1320 it is not possible to track changes to a buffer vim-patch:8.1.1321 no docs or tests for listener functions vim-patch:8.1.1326 no test for listener with partial vim-patch:8.1.1328 no test for listener with undo operation vim-patch:8.1.1332 cannot flush listeners without redrawing, mix of changes vim-patch:8.1.1335 listener callback is called after inserting text vim-patch:8.1.1419 listener callbacks may be called recursively vim-patch:8.1.1486 a listener change is merged even when it adds a line N/A build issues: vim-patch:8.1.0601 a few compiler warnings vim-patch:8.1.0612 cannot use two global runtime dirs with configure vim-patch:8.1.0684 warnings from 64-bit compiler vim-patch:8.1.1344 Coverity complains about possibly using a NULL pointer vim-patch:8.1.1376 warnings for size_t/int mixups vim-patch:8.1.1414 alloc() returning "char_u *" causes a lot of type casts vim-patch:8.1.1508 sound keeps failing on Travis vim-patch:8.1.1494 build failure N/A terminal / job control patches: vim-patch:8.1.0761 default value for brief_wait is wrong vim-patch:8.1.0824 SunOS/Solaris has a problem with ttys vim-patch:8.1.0845 having job_status() free the job causes problems vim-patch:8.1.0870 Vim doesn't use the new ConPTY support in Windows 10 vim-patch:8.1.0880 MS-Windows: inconsistent selection of winpty/conpty vim-patch:8.1.0890 pty allocation wrong if using file for out channel vim-patch:8.1.0906 using clumsy way to get console window handle vim-patch:8.1.0909 MS-Windows: using ConPTY even though it is not stable vim-patch:8.1.0928 stray log function call vim-patch:8.1.0940 MS-Windows console resizing not handled properly vim-patch:8.1.1028 MS-Windows: memory leak when creating terminal fails vim-patch:8.1.1265 when GPM mouse support is enabled double clicks do not work vim-patch:8.1.1267 cannot check if GPM mouse support is working N/A encoding patches: vim-patch:8.1.0879 MS-Windows: temp name encoding can be wrong vim-patch:8.1.0895 MS-Windows: dealing with temp name encoding not quite right vim-patch:8.1.0918 MS-Windows: startup messages are not converted vim-patch:8.1.1090 MS-Windows: modify_fname() has problems with some 'encoding' N/A platform patches: vim-patch:8.1.1103 MS-Windows: old API calls are no longer needed N/A Lua patches: vim-patch:8.1.1019 Lua: may garbage collect function reference in use N/A Nvim has floating windows instead of popup window: vim-patch:8.1.1329 plans for popup window support are spread out vim-patch:8.1.1364 design for popup window support needs more details vim-patch:8.1.1391 no popup window support vim-patch:8.1.1400 using global pointer for tab-local popups is clumsy vim-patch:8.1.1399 popup windows not adjusted when switching tabs vim-patch:8.1.0062 popup menu broken if a callback changes the window layout vim-patch:8.1.1405 "highlight" option of popup windows not supported vim-patch:8.1.1406 popup_hide() and popup_show() not implemented yet vim-patch:8.1.1407 popup_create() does not support text properties vim-patch:8.1.1410 popup_move() is not implemented yet vim-patch:8.1.1402 "timer" option of popup windows not supported vim-patch:8.1.1408 PFL_HIDDEN conflicts with system header file vim-patch:8.1.1420 popup window size only uses first line length vim-patch:8.1.1421 drawing "~" line in popup window vim-patch:8.1.1422 popup_getoptions() not implemented yet vim-patch:8.1.1423 popup windows use options from current window and buffer vim-patch:8.1.1426 no test for syntax highlight in popup window vim-patch:8.1.1427 popup window screenshot test fails vim-patch:8.1.1428 popup_atcursor() not implemented yet vim-patch:8.1.1429 "pos" option of popup window not supported yet vim-patch:8.1.1430 popup window option "wrap" not supported vim-patch:8.1.1431 popup window listed as "Scratch" vim-patch:8.1.1432 can't build with eval feature vim-patch:8.1.1438 some commands cause trouble in a popup window vim-patch:8.1.1441 popup window filter not yet implemented vim-patch:8.1.1442 popup windows not considered when the Vim window is resized vim-patch:8.1.1443 popup window padding and border not implemented yet vim-patch:8.1.1444 not using double line characters for popup border vim-patch:8.1.1445 popup window border highlight not implemented yet vim-patch:8.1.1446 popup window callback not implemented yet vim-patch:8.1.1447 not allowed to create an empty popup vim-patch:8.1.1448 statusline is sometimes drawn on top of popup vim-patch:8.1.1449 popup text truncated at end of screen vim-patch:8.1.1450 popup window positioning wrong when using padding or borders vim-patch:8.1.1451 CTRL-L does not clear screen with a popup window vim-patch:8.1.1452 line and col property of popup windows not properly checked vim-patch:8.1.1453 popup window "moved" property not implemented yet vim-patch:8.1.1455 popup_atcursor() not completely implemented vim-patch:8.1.1459 popup window border looks bad when 'ambiwidth' is "double" vim-patch:8.1.1460 popup window border characters may be wrong vim-patch:8.1.1416 popup_getposition() not implemented yet vim-patch:8.1.1493 redrawing with popups is slow and causes flicker vim-patch:8.1.1496 popup window height is not recomputed vim-patch:8.1.1499 ruler not updated after popup window was removed vim-patch:8.1.1511 matches in a popup window are not displayed properly vim-patch:8.1.1513 all popup functionality is in functions, except :popupclear vim-patch:8.1.1517 when a popup changes all windows are redrawn vim-patch:8.1.1518 crash when setting 'columns' while a popup is visible vim-patch:8.1.1520 popup windows are ignored when dealing with mouse position vim-patch:8.1.1521 when a popup window is closed the buffer remains vim-patch:8.1.1522 poup_notification() not implemented yet vim-patch:8.1.1495 memory access error vim-patch:8.1.1497 accessing memory beyond allocated space N/A already applied: vim-patch:8.1.1226 {not in Vi} remarks get in the way of useful help text vim-patch:8.1.1280 remarks about functionality not in Vi clutters the help
* refactor: replace manual header guards with #pragma oncedundargoc2023-11-12
| | | | | It is less error-prone than manually defining header guards. Pretty much all compilers support it even if it's not part of the C standard.
* build: remove PVSdundargoc2023-11-12
| | | | | | | We already have an extensive suite of static analysis tools we use, which causes a fair bit of redundancy as we get duplicate warnings. PVS is also prone to give false warnings which creates a lot of work to identify and disable.
* feat(lsp)!: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512LW2023-11-12
| | | | | | | | | | | | | | | | | | refactor!: `vim.lsp.inlay_hint()` -> `vim.lsp.inlay_hint.enable()` Problem: The LSP specification allows inlay hints to include tooltips, clickable label parts, and code actions; but Neovim provides no API to query for these. Solution: Add minimal viable extension point from which plugins can query for inlay hints in a range, in order to build functionality on top of. Possible Next Steps --- - Add `virt_text_idx` field to `vim.fn.getmousepos()` return value, for usage in mappings of `<LeftMouse>`, `<C-LeftMouse>`, etc
* PVS fixesdundargoc2023-11-10
| | | | | | | | | | | | | * build(PVS): exclude mpack and klib as they are external dependencies * build(PVS): suppress warning V601 See https://pvs-studio.com/en/docs/warnings/v601/ * fix(PVS/V009): add top-level message * fix(PVS/V547): expression 'p != NULL' is always true * fix(PVS/V547): expression '* termpp == NULL' is always false