| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem:
"make clean" fails since 03bc23de36c8.
make -C runtime/doc clean
make[1]: *** No rule to make target `clean'. Stop.
make: *** [clean] Error 2
Solution:
Update the "clean" target.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
This will ensure less verbose output and faster linting.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Dirs "config", "packaging", and "third-party" are all closely related
but this is not obvious from the layout. This adds friction for new
contributors.
Solution:
- rename config/ to cmake.config/
- rename test/config/ to test/cmakeconfig/ because it is used in Lua
tests: require('test.cmakeconfig.paths').
- rename packaging/ to cmake.packaging/
- rename third-party/ to cmake.deps/ (parallel with .deps/)
|
| |
|
|
|
|
|
|
|
| |
* build: move the logic for linters to cmake
Cmake is our source of truth. We should have as much of our build
process there as possible so everyone can make use of it.
* build: remove redundant check for ninja generator
The minimum cmake version as of writing this is 3.10, which has ninja
support.
|
| | |
|
| |
|
|
|
| |
I get a weird error about syntax.vim not being installed when using
--clean when running it locally.
|
| |
|
|
|
|
|
| |
- fix regression where `-j` is not passed to ninja
(39c886551bf8323b63938f5dee5beb650c61f02b, #15708)
- enable to pass `-l` (load) to ninja as well
- s/BUILD_TYPE/CMAKE_GENERATOR/
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes to the main Makefile:
- add `MAKEFILE_PATH` and `MAKEFILE_DIR` that are set with native commands
- add `NVIM_PRG`
- rename `BUILD_TYPE` to `CMAKE_GENERATOR` to align with CMake naming
- remove the misleading `BUILD_CMD` and use `BUILD_TOOL` instead
Add the following phony target to quickly test the changes
```make
debug-print:
@echo makefile path: $(MAKEFILE_PATH)
@echo makefile dir: $(MAKEFILE_DIR)
@echo build dir: $(BUILD_DIR)
@echo cmake generator tool: $(CMAKE_GENERATOR)
@echo build-tool: $(BUILD_TOOL)
@echo nvim-prg: $(NVIM_PRG)
```
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Follow-up to 8969efca8 (Vim patch 8.1.0723)
NOTE: This changes the main entrypoint for running single oldtest files
to not use/require the ".res" extension anymore. But it is handled for
B/C.
Adds a phony rule to run oldtest by filename.
Not going through "$(MAKE)" avoids GNUmakefile being used then (which I
use for WIP things), and it seems like SINGLE_MAKE should be used anyway
probably.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: Cannot run specific test when in src/testdir the same was as in
the src directory.
Solution: Move build rule to src/testdir/Makefile.
https://github.com/vim/vim/commit/ec50401e1e1357a1340b3c92109fd4860e38a8ac
Developer can omit '.res' suffix now.
TEST_FILE=test_syntax make oldtest
or
make -C src/nvim/testdir test_syntax
|
| | |
|
| |
|
|
|
|
|
| |
Problem: "make clean" in top dir does not cleanup indent test output.
Solution: Clean the indent test output. Do not rely on the vim executable
for that. (closes vim/vim#4307)
https://github.com/vim/vim/commit/e13a3901cae0afb4d2af30d497696af08029fd81
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is better practice in general, and allows to remove the "helptags
ALL" hacks.
Ref: https://github.com/neovim/neovim/issues/8824
Ref: https://github.com/neovim/neovim/commit/f1b67c3453c
* Makefile: fix dependencies with regard to helptags
- use the file as the main target to avoid unnecessary triggering
- use "make oldtest" on Travis to ensure it gets built
|
| |
|
|
|
|
| |
A separate rule it clearer, and allows for `make --keep-going lint` in
general later.
Ref: https://github.com/neovim/neovim/pull/10714
|
| |
|
|
| |
Ref: https://github.com/neovim/neovim/pull/10714#issuecomment-518932355
|
| |
|
|
|
| |
This avoids errors when using "make lint", but "flake8" is not
available. We do not want to install it then via third-party.
On CI "make pylint" is used explicitly.
|
| |
|
|
|
|
| |
While not doing any harm with "Unix Makefiles", they do not work there
as-is. Therefore just do not use them then.
Followup to #10366 (7f6ff829a).
|
| |
|
|
| |
This allows for `make build/bin/nvim`,
`make build/src/nvim/auto/funcs.generated.h` etc.
|
| |
|
|
| |
Ref: https://github.com/neovim/neovim/pull/10631#issuecomment-515756591
|
| |
|
|
|
|
|
| |
Append `CMAKE_INSTALL_PREFIX` to any given `CMAKE_EXTRA_FLAGS` always.
Regressed in 5031e3298.
Fixes https://github.com/neovim/neovim/issues/10524.
|
| |
|
|
|
|
|
|
| |
- Move .luacheckrc to root, add read_globals=vim
- Simplify lualint target, run it on all lua files
- Lint preload.lua, but ignore W211
- Remove testlint target, included in lualint (and lint)
- Clean up .luacheckrc
|
| |
|
| |
In order that `$(DEPS_BUILD_DIR)/Makefile` exists under parallel make
|
| |
|
|
|
| |
Fixes:
> Recursive variable 'CMAKE_EXTRA_FLAGS' references itself (eventually). Stop.
|
| |
|
| |
Fixes "make: Nothing to be done for 'checkprefix'." after 5031e3298.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Main improvement: do not error out, but re-run CMake in case
CMAKE_INSTALL_PREFIX changed, and only check it for "install".
- only look at CMAKE_EXTRA_FLAGS via shell if not empty
- add CMAKE_INSTALL_PREFIX to CMAKE_EXTRA_FLAGS (not CMAKE_FLAGS), to
override it being set in CMAKE_EXTRA_FLAGS from local.mk
- use an empty "checkprefix" target if CMAKE_INSTALL_PREFIX is not
provided
- skip checking of cached value without build/.ran-cmake; it will be run
then anyway
- only use it with "install" target; it is only relevant there
- do not error, but re-run CMake (by removing the stamp file)
|
| |
|
| |
Regressed in 69eb4fa0c.
|
| |
|
|
|
|
|
|
| |
Do not run CMake in build before deleting it unnecessarily:
% make distclean
test -d build && ninja -C build clean || true
ninja: Entering directory `build'
[0/1] Re-running CMake...
|
| |
|
|
|
|
|
|
|
|
| |
- make `build/.ran-third-party-cmake` depend on `$(DEPS_BUILD_DIR)`.
It still creates `build` there as a side-effect, which does not
belong there really, but is OK for now.
- add an explicit target for `$(DEPS_BUILD_DIR)` (".deps"), only with
USE_BUNDLED=1 (the default).
This makes it easier to rebuild deps cleanly, by using `rm -rf .deps; make`.
|
| |
|
|
|
| |
Only append flag for verbosity with ninja if non-empty.
Fixes the trailing space with `ninja -C .deps`.
|
| |
|
|
|
| |
ref #9748
ref #9743
|
| |
|
|
|
| |
On some (but not all) systems this works implicitly.
fixes #9743
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This regressed in 3b473bb14f9f452461016c7042949a23499df629:
```
% make 'CMAKE_BUILD_TYPE=RelWithDebInfo' 'CMAKE_EXTRA_FLAGS=-DCMAKE_INSTALL_PREFIX=/vim-build/neovim/neovim/master -DENABLE_JEMALLOC=OFF' 'DEPS_CMAKE_FLAGS=-DUSE_BUNDLED=OFF'
error: CMAKE_INSTALL_PREFIX '/vim-build/neovim/neovim/master' does not match cached value ''
Run this command, then try again:
cmake build -DCMAKE_INSTALL_PREFIX=/vim-build/neovim/neovim/master
make: *** [Makefile:169: checkprefix] Error 1
```
It was checking before for non-empty also [1].
1: https://github.com/neovim/neovim/pull/9621/files#diff-b67911656ef5d18c4ae36cb6741b7965L22
|
| |
|
|
|
|
| |
`clean` and `distclean` should not check CMAKE_INSTALL_PREFIX.
ref #9615
Helped-by: bruce-hill
|
| |
|
|
| |
closes #9615
|
| |
|
|
| |
ref 24f2cc55a83d #9430
|
| | |
|
| |
|
| |
It's confusing that the Makefile uses a different name than CMake.
|
| |
|
|
|
|
|
| |
This is intended to be used with source introspection tools like
clangd, where it would useful to regenerate headers and source files,
which introspection results depend on, without making a full
rebuild which takes much longer time than just generating headers.
|
| |
|
|
|
| |
Without this, the CI_TARGET=lint travis job cant't find the cached deps
(in $HOME/nvim-deps), nor can it update the cache.
|
| | |
|