zeertzjq
0bbe8e7fc2
refactor(IWYU): fix includes for highlight_group.h ( #26340 )
2023-12-01 09:38:04 +08:00
zeertzjq
09e93d7c4d
refactor(IWYU): create {ex_getln,rbuffer,os/fileio}_defs.h ( #26338 )
2023-12-01 08:06:37 +08:00
zeertzjq
a6f26c86cb
refactor(IWYU): fix includes for cmdhist.h ( #26324 )
2023-11-30 22:48:15 +08:00
zeertzjq
c8e37a589a
refactor(IWYU): move typedefs out of globals.h ( #26322 )
2023-11-30 19:52:23 +08:00
zeertzjq
ce56e0a845
refactor(IWYU): move UI and LineFlags to ui_defs.h ( #26318 )
2023-11-30 17:16:57 +08:00
zeertzjq
86cc791deb
refactor: move function macros out of vim_defs.h ( #26300 )
2023-11-29 23:10:21 +08:00
zeertzjq
a6cba103ce
refactor: move some constants out of vim_defs.h ( #26298 )
2023-11-29 20:32:40 +08:00
zeertzjq
64b53b71ba
refactor(IWYU): create normal_defs.h ( #26293 )
2023-11-29 12:10:42 +08:00
dundargoc
79b6ff28ad
refactor: fix headers with IWYU
2023-11-28 22:23:56 +01:00
zeertzjq
71e954ad30
refactor(IWYU): fix includes for ugrid.h ( #26267 )
2023-11-28 17:01:27 +08:00
zeertzjq
1a8f60c7d2
refactor: move hashtab types to hashtab_defs.h ( #26262 )
2023-11-28 10:47:22 +08:00
zeertzjq
718053b7a9
refactor: fix runtime_defs.h ( #26259 )
2023-11-28 07:47:36 +08:00
dundargoc
e3f735ef10
refactor: fix includes for api/autocmd.h
2023-11-27 21:53:07 +01:00
dundargoc
f9231603c4
refactor: fix includes for iconv.h
2023-11-27 21:52:34 +01:00
dundargoc
ab7c0e9904
refactor: create runtime_defs.h
2023-11-27 21:35:21 +01:00
dundargoc
f4aedbae4c
build(IWYU): fix includes for undo_defs.h
2023-11-27 19:33:17 +01:00
dundargoc
40139738eb
build: enable IWYU on mac
2023-11-27 15:50:45 +01:00
zeertzjq
38a20dd89f
build(IWYU): replace most private mappings with pragmas ( #26247 )
2023-11-27 20:58:37 +08:00
zeertzjq
574d25642f
refactor: move Arena and ArenaMem to memory_defs.h ( #26240 )
2023-11-27 17:21:58 +08:00
zeertzjq
6343d41436
refactor: move autocmd types to autocmd_defs.h ( #26239 )
2023-11-27 11:17:04 +08:00
zeertzjq
7e2387f41b
build(clint): more precise check for "defs" headers ( #26236 )
2023-11-27 08:34:06 +08:00
dundargoc
71141e8cf5
build(IWYU): fix headers for arabic.h
2023-11-26 22:15:53 +01:00
zeertzjq
6361806aa2
refactor: move garray_T to garray_defs.h ( #26227 )
2023-11-26 22:58:52 +08:00
dundargoc
34509bbea3
build: sync IWYU and clint to ignore the same headers ( #26228 )
...
Also fix headers for autocmd.c.
2023-11-26 22:34:29 +08:00
dundargoc
ce6075f82a
build: add check to clint to prevent non-defs header includes
...
Also enable iwyu on headers, but add an ignore for each file separately.
Work on https://github.com/neovim/neovim/issues/6371 .
2023-11-26 15:06:51 +01:00
dundargoc
a827003e30
build: rework IWYU mapping files
...
Create mapping to most of the C spec and some POSIX specific functions.
This is more robust than relying files shipped with IWYU.
2023-11-25 17:41:33 +01:00
dundargoc
5cefec7349
build: various cmake fixes
...
- silence false warnings on MSVC
- merge `clang-tidy` cmake target into `lintc` and remove the
corresponding make target
- use cmake's built-in endianness detection
2023-11-04 18:32:47 +01:00
dundargoc
6c0f900699
ci: enable clang-analyzer warnings
...
This adds the checks in https://neovim.io/doc/reports/clang/ when using
clang-tidy. The strategy is to enable all clang-analyzer checks, and
disable only the checks for the warnings that exist currently. This
allows us to eliminate each warning type without blocking ongoing work,
but also without adding bugs for already eliminated warnings.
The plan is to eventually eliminate https://neovim.io/doc/reports/clang/
by completely integrating it into the clang-tidy check.
Also add make and cmake targets `clang-analyzer` to run this check.
2023-10-09 16:52:28 +02:00
zeertzjq
5bb17958c5
build: fix "make iwyu" not working ( #24873 )
2023-08-26 17:20:40 +08:00
Lewis Russell
2234b84a1b
docs(generators): bake into cmake
2023-08-23 12:16:04 +01:00
Lewis Russell
48d533272e
feat(lua-types): types for vim.api.* ( #24523 )
2023-08-01 14:20:44 +01:00
Yuma Ueda
fd9ac5aa8e
build(makefile): remove a phony target uninstall ( #24349 )
...
`uninstall` target was removed from makefile
2023-07-14 15:51:15 +02:00
dundargoc
ebb10d6248
build: remove functionaltest-lua target
...
It's not needed anymore as it does the exact same thing as
functionaltest. The functionaltest target will test the lua type neovim
was built with, which can be toggled with the PREFER_LUA option.
2023-05-24 21:14:47 +02:00
luukvbaal
39771b2238
build(Makefile): add nvim to oldtest phony target
...
This is to force a rebuild each time a file is changed.
2023-04-27 08:26:07 +02:00
dundargoc
339011f59c
build: remove uninstall target
...
The `make uninstall` target can't be expected to find all files it
installs in many cases. It is therefore better to remove it rather than give
the impression to users that it is a robust.
2023-04-08 23:07:09 +02:00
dundargoc
6801befcc5
build(uninstall): don't build if installation manifest not found
...
Due to the way neovim project is set up, running `make uninstall` would
previously build neovim in order to determine whether neovim was
installed. Instead, check if installation manifest file exists and if
not then skip building entirely.
2023-04-08 15:12:38 +02:00
dundargoc
829d92eca3
revert: "build: enable cmake workflow presets ( #21860 )"
...
This reverts commit 00a976129b
.
Visual Studio fails the build if the CMakePresets.json version is too
high and the CMakePresets.json integration is enabled.
Closes https://github.com/neovim/neovim/issues/22608 .
2023-03-11 19:21:54 +01:00
dundargoc
af23d17388
test: move oldtests to test directory ( #22536 )
...
The new oldtest directory is in test/old/testdir. The reason for this is
that many tests have hardcoded the parent directory name to be
'testdir'.
2023-03-07 11:13:04 +08:00
dundargoc
4cf4ae93df
build: cmake cleanup ( #22251 )
...
- Remove unused code
- Use consistent casing. Variable names such as LibLuV_LIBRARIES is
needlessly jarring, even if the name might be technically correct.
- Use title casing for packages. find_package(unibilium) requires the
find_module to be named "Findunibilium.cmake", which makes it harder
to spot when scanning the files. Instead, use "Unibilium".
2023-03-02 22:50:43 +01:00
dundargoc
d6d3a92013
build: replace check-single-includes with clang-tidy ( #22061 )
...
Clang-tidy already does what check-single-includes does automatically on
top of its regular linting. It is also generator independent, so it
doesn't take an eternity to run on slower generators such as Visual
Studio.
2023-02-08 18:16:48 +01:00
dundargoc
979b7b0c49
build: add uninstall make target ( #22059 )
...
We already have a "make install", it makes sense to also have a "make
uninstall".
2023-01-30 18:45:07 +01:00
dundargoc
775e292290
build: remove nvim as a dependency of unittests ( #21903 )
...
Unittests rely on nvim-test and not nvim, leading to both nvim and
nvim-test being compiled each time a file is changed. Furthermore, the
dependencies are already specified by CMakeLists.txt and shouldn't need
to be specified in Makefile as it's only meant to be syntactic sugar.
2023-01-19 22:12:27 +01:00
dundargoc
00a976129b
build: enable cmake workflow presets ( #21860 )
...
Workflow presets allows combining configure, build, test and packaging
steps and makes it possible to run everything in a single command. So
cmake --preset iwyu
cmake --build --preset iwyu
instead becomes
cmake --workflow --preset iwyu
Workflow presets requires at least cmake version 3.25 to use.
2023-01-19 10:34:45 +01:00
dundargoc
9220755302
build: remove clint error suppression #21782
...
Fix remaining clint errors and remove error suppression completely.
Rename the lint targets to align with the established naming convention:
- lintc-clint lints with clint.py.
- lintc-uncrustify lints with uncrustify.
- lintc runs both targets.
lintc is also provided as a make target for convenience.
After this change we can remove these files:
https://github.com/neovim/doc/tree/gh-pages/reports/clint
https://github.com/neovim/doc/blob/main/ci/clint-errors.sh
2023-01-13 15:48:10 -08:00
dundargoc
66360675cf
build: allow IWYU to fix includes for all .c files
...
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.
Work on https://github.com/neovim/neovim/issues/549 , but doesn't close
it since this only works fully for .c files and not headers.
2022-11-15 10:30:03 +01:00
dundargoc
1d625a3cf7
build: remove python linting #20851
...
This includes both the `lintpy` make target and for CI. We're actively
trying to reduce our python usage, so this only seems to give warnings
for unimportant things such as exceeding the line after deleting python
code.
2022-10-29 10:42:10 -07:00
Justin M. Keyes
c651152a9d
fix(build): "make clean" fails
...
Problem:
"make clean" fails since 03bc23de36
.
make -C runtime/doc clean
make[1]: *** No rule to make target `clean'. Stop.
make: *** [clean] Error 2
Solution:
Update the "clean" target.
2022-10-04 18:37:59 +02:00
Justin M. Keyes
09b64d75bd
feat(docs): gen_help_html.lua
...
Problem:
The :help docs HTML generated is driven by an old awk script
`runtime/doc/makehtml.awk` that is hard to maintain (ad hoc parser and
no one has touched it in decades) and has bugs like:
- https://github.com/neovim/neovim.github.io/issues/96
- https://github.com/neovim/neovim.github.io/issues/97
Solution:
Use Lua + treesitter (https://github.com/vigoux/tree-sitter-vimdoc ) to
generate :help docs HTML. Also validates tag links.
fix https://github.com/neovim/neovim.github.io/issues/96
fix https://github.com/neovim/neovim.github.io/issues/97
TODO:
- delete doc_html build task
- delete runtime/doc/Makefile
- delete makehtml.awk
- delete maketags.awk
OUTPUT:
$ nvim -V1 -es --clean +"lua require('scripts.gen_help_html')"
output dir: /…/neovim.github.io/_site/doc/
generated (207 errors): api.txt => api.html
generated (122 errors): arabic.txt => arabic.html
generated (285 errors): autocmd.txt => autocmd.html
generated (641 errors): builtin.txt => builtin.html
generated (623 errors): change.txt => change.html
generated (65 errors): channel.txt => channel.html
generated (353 errors): cmdline.txt => cmdline.html
generated (3 errors): debug.txt => debug.html
generated (28 errors): deprecated.txt => deprecated.html
generated (193 errors): dev_style.txt => dev_style.html
generated (460 errors): develop.txt => develop.html
generated (19 errors): diagnostic.txt => diagnostic.html
generated (57 errors): diff.txt => diff.html
generated (818 errors): digraph.txt => digraph.html
generated (330 errors): editing.txt => editing.html
generated (368 errors): eval.txt => eval.html
generated (184 errors): fold.txt => fold.html
generated (61 errors): ft_ada.txt => ft_ada.html
generated (0 errors): ft_ps1.txt => ft_ps1.html
generated (20 errors): ft_raku.txt => ft_raku.html
generated (5 errors): ft_rust.txt => ft_rust.html
generated (41 errors): ft_sql.txt => ft_sql.html
generated (110 errors): gui.txt => gui.html
generated (79 errors): hebrew.txt => hebrew.html
generated (17 errors): help.txt => index.html
generated (104 errors): helphelp.txt => helphelp.html
generated (0 errors): if_cscop.txt => if_cscop.html
generated (23 errors): if_perl.txt => if_perl.html
generated (16 errors): if_pyth.txt => if_pyth.html
generated (9 errors): if_ruby.txt => if_ruby.html
generated (216 errors): indent.txt => indent.html
generated (634 errors): index.txt => vimindex.html
generated (320 errors): insert.txt => insert.html
generated (265 errors): intro.txt => intro.html
generated (9 errors): job_control.txt => job_control.html
generated (0 errors): lsp-extension.txt => lsp-extension.html
generated (214 errors): lsp.txt => lsp.html
generated (311 errors): lua.txt => lua.html
generated (592 errors): luaref.txt => luaref.html
generated (798 errors): luvref.txt => luvref.html
generated (663 errors): map.txt => map.html
generated (228 errors): mbyte.txt => mbyte.html
generated (228 errors): message.txt => message.html
generated (0 errors): mlang.txt => mlang.html
generated (761 errors): motion.txt => motion.html
generated (4 errors): nvim.txt => nvim.html
generated (226 errors): nvim_terminal_emulator.txt => nvim_terminal_emulator.html
generated (988 errors): options.txt => options.html
generated (567 errors): pattern.txt => pattern.html
generated (15 errors): pi_gzip.txt => pi_gzip.html
generated (10 errors): pi_health.txt => pi_health.html
generated (27 errors): pi_msgpack.txt => pi_msgpack.html
generated (2177 errors): pi_netrw.txt => pi_netrw.html
generated (41 errors): pi_paren.txt => pi_paren.html
generated (9 errors): pi_spec.txt => pi_spec.html
generated (218 errors): pi_tar.txt => pi_tar.html
generated (0 errors): pi_tutor.txt => pi_tutor.html
generated (235 errors): pi_zip.txt => pi_zip.html
generated (265 errors): print.txt => print.html
generated (31 errors): provider.txt => provider.html
generated (335 errors): quickfix.txt => quickfix.html
generated (572 errors): quickref.txt => quickref.html
generated (109 errors): recover.txt => recover.html
generated (14 errors): remote.txt => remote.html
generated (14 errors): remote_plugin.txt => remote_plugin.html
generated (351 errors): repeat.txt => repeat.html
generated (23 errors): rileft.txt => rileft.html
generated (12 errors): russian.txt => russian.html
generated (6 errors): scroll.txt => scroll.html
generated (106 errors): sign.txt => sign.html
generated (347 errors): spell.txt => spell.html
generated (784 errors): starting.txt => starting.html
generated (1499 errors): syntax.txt => syntax.html
generated (23 errors): tabpage.txt => tabpage.html
generated (257 errors): tagsrch.txt => tagsrch.html
generated (31 errors): term.txt => term.html
generated (0 errors): testing.txt => testing.html
generated (96 errors): tips.txt => tips.html
generated (57 errors): treesitter.txt => treesitter.html
generated (71 errors): uganda.txt => uganda.html
generated (74 errors): ui.txt => ui.html
generated (87 errors): undo.txt => undo.html
generated (17 errors): userfunc.txt => userfunc.html
generated (1 errors): usr_01.txt => usr_01.html
generated (89 errors): usr_02.txt => usr_02.html
generated (293 errors): usr_03.txt => usr_03.html
generated (46 errors): usr_04.txt => usr_04.html
generated (96 errors): usr_05.txt => usr_05.html
generated (54 errors): usr_06.txt => usr_06.html
generated (20 errors): usr_07.txt => usr_07.html
generated (241 errors): usr_08.txt => usr_08.html
generated (130 errors): usr_09.txt => usr_09.html
generated (50 errors): usr_10.txt => usr_10.html
generated (33 errors): usr_11.txt => usr_11.html
generated (32 errors): usr_12.txt => usr_12.html
generated (22 errors): usr_20.txt => usr_20.html
generated (75 errors): usr_21.txt => usr_21.html
generated (8 errors): usr_22.txt => usr_22.html
generated (3 errors): usr_23.txt => usr_23.html
generated (163 errors): usr_25.txt => usr_25.html
generated (13 errors): usr_26.txt => usr_26.html
generated (84 errors): usr_27.txt => usr_27.html
generated (173 errors): usr_28.txt => usr_28.html
generated (285 errors): usr_29.txt => usr_29.html
generated (280 errors): usr_30.txt => usr_30.html
generated (11 errors): usr_31.txt => usr_31.html
generated (13 errors): usr_32.txt => usr_32.html
generated (156 errors): usr_40.txt => usr_40.html
generated (134 errors): usr_41.txt => usr_41.html
generated (35 errors): usr_42.txt => usr_42.html
generated (19 errors): usr_43.txt => usr_43.html
generated (60 errors): usr_44.txt => usr_44.html
generated (13 errors): usr_45.txt => usr_45.html
generated (1 errors): usr_toc.txt => usr_toc.html
generated (69 errors): various.txt => various.html
generated (68 errors): vi_diff.txt => vi_diff.html
generated (437 errors): vim_diff.txt => vim_diff.html
generated (296 errors): visual.txt => visual.html
generated (181 errors): windows.txt => windows.html
generated 119 html pages
total errors: 23862
invalid tags: 537
2022-09-22 15:36:27 +02:00
dundargoc
8ce7e7409f
build: add formatting targets for c and lua files ( #19488 )
...
The targets will only format files that have been changed in current
branch compared to the master branch. This includes unstaged, staged and
committed files.
Add following make and cmake targets:
formatc - format changed c files
formatlua - format changed lua files
format - run formatc and formatlua
Remove scripts/uncrustify.sh as this deprecates it.
2022-08-02 12:32:57 +02:00
dundargoc
9b4d0137b8
build: move lint target to cmake #19169
...
This will ensure less verbose output and faster linting.
2022-07-01 09:15:04 -07:00