Commit Graph

41 Commits

Author SHA1 Message Date
Yilin Yang
fbf2c414ad API: nvim_set_keymap, nvim_del_keymap #9924
closes #9136

- Treat empty {rhs} like <Nop>

- getchar.c: Pull "repl. MapArg termcodes" into func
  The "preprocessing code" surrounding the replace_termcodes calls needs
  to invoke replace_termcodes, and also check if RHS is equal to "<Nop>".
  To reduce code duplication, factor this out into a helper function.

  Also add an rhs_is_noop flag to MapArguments; buf_do_map_explicit
  expects an empty {rhs} string for "<Nop>", but also needs to distinguish
  that from something like ":map lhs<cr>" where no {rhs} was provided.

- getchar.c: Use allocated buffer for rhs in MapArgs
  Since the MAXMAPLEN limit does not apply to the RHS of a mapping (or
  else an RHS that calls a really long autoload function from a plugin
  would be incorrectly rejected as being too long), use an allocated
  buffer for RHS rather than a static buffer of length MAXMAPLEN + 1.

- Mappings LHS and RHS can contain literal space characters, newlines, etc.

- getchar.c: replace_termcodes in str_to_mapargs
  It makes sense to do this; str_to_mapargs is, intuitively, supposed to
  take a "raw" command string and parse it into a totally "do_map-ready"
  struct.

- api/vim.c: Update lhs, rhs len after replace_termcodes
  Fixes a bug in which replace_termcodes changes the length of lhs or rhs,
  but the later search through the mappings/abbreviations hashtables
  still uses the old length value. This would cause the search to fail
  erroneously and throw 'E31: No such mapping' errors or 'E24: No such
  abbreviation' errors.

- getchar: Create new map_arguments struct
  So that a string of map arguments can be parsed into a more useful, more
  portable data structure.

- getchar.c: Add buf_do_map function
  Exactly the same as the old do_map, but replace the hardcoded references
  to the global `buf_T* curbuf` with a function parameter so that we can
  invoke it from nvim_buf_set_keymap.

- Remove gettext calls in do_map error handling
2019-05-12 11:44:48 +02:00
Justin M. Keyes
90e3dd9220 makedeps.bat 2018-06-06 00:58:57 +02:00
Justin M. Keyes
30f6ff7021 .gitignore 2018-03-30 17:47:25 +02:00
Justin M. Keyes
3a7feb6989 vim-patch.sh: remove vimrc_example.vim
vimrc_example.vim is not relevant to Nvim. Anything worth having in
there should be made an actual default.

.gitignore:
  - remove *.orig ... super annoying
2017-11-07 20:38:04 +01:00
timothy eichler
e565fc2294 gitignore: cmake-build-debug (#7359) 2017-10-08 18:26:44 +02:00
Christian Höltje
55c821184d git: ignore .nvimlog (#7074) 2017-07-26 11:11:28 +02:00
Justin M. Keyes
1ea9ebf112 test: Use workspace-local temp directory.
Closes #6291
2017-03-30 02:55:00 +02:00
Justin M. Keyes
d6797e2865 .gitignore: Do not ignore *.rej 2017-03-21 12:19:16 +01:00
Anmol Sethi
9768d510fa
ignore .res files generated by the tests in testdir 2016-08-11 02:14:02 -04:00
Justin M. Keyes
ee508e6e07 .gitignore: cleanup 2016-06-06 11:02:15 -04:00
Justin M. Keyes
93274bfda7 runtime/doc: remove doctags
nvim is a dependency of the main tags task, and it's very unlikely that
one would need to build tags without having nvim available.
2016-06-06 11:02:15 -04:00
Michael Ennen
e70cae426c test: Remove references to tiny.vim/small.vim/mbyte.vim
Vim creates these scripts in test1 depending on what build features
are enabled so that tests that use these features are skiped if
necessary. Because Neovim only has one type of build (and the features
+eval, +windows, and +multi-byte are enabled in this build) they are
not necessary.
2016-05-22 15:55:38 -04:00
James McCoy
1253c99eb8 vim-patch:40a346d
Update gitignore for files created when running tests.

40a346dc19
2016-05-05 20:39:15 -04:00
Seth Jackson
a480614cb0 gitignore: Anchor errors.json 2016-01-19 21:55:43 -05:00
Seth Jackson
fbfe564b3c gitignore: Ignore errors.json
It's generated by `make lint`.
2015-12-22 15:22:21 -05:00
Michael Reed
fdfdd6e155 Update .gitignore
refs #3687
2015-11-23 18:40:34 -05:00
Michael Reed
980359c7f1 Update .gitignore
- the man stuff hasn't been needed since 0086c0a
- "runtime/doc/tags" is already covered by "tags"
2015-10-31 14:21:04 -04:00
ZyX
22906265a2 mark: Clear marks in some cases, but do not do useless job in free_\* 2015-10-08 22:00:46 +03:00
David Bürgin
0af7c8f624 legacy tests: Remove legacy tests for Lua (test85) #2357 2015-04-06 01:49:36 -04:00
David Bürgin
4657cd53d3 legacy tests: Remove legacy tests for MzScheme (test70) 2015-04-06 01:48:31 -04:00
John Szakmeister
a69e464f70 Remove swap file accidentally committed in 34dba3d7.
Also expand the rule in .gitignore to block other forms of swap files.
2015-04-05 09:41:50 -04:00
Michael Reed
29ad67dd47 gitignore: add /src/nvim/testdir/del
refs #1875
2015-03-12 20:04:26 -04:00
Florian Walch
0ae2acdc86 Improvements to vim-patch script. 2014-12-25 23:32:40 +01:00
Stefan Hoffmann
f9ca9e43c3 doc: update gitignore 2014-09-20 14:03:14 +02:00
Stefan Hoffmann
e9577eeaeb move documentation output to build/doxygen 2014-06-19 11:53:57 +02:00
Eliseo Martínez
3b523ec699 Introduce nvim namespace: Fix localization.
- Fix executable path.
- Make po file title similar as others.
2014-05-15 20:46:02 +02:00
Eliseo Martínez
2ababe5a99 Introduce nvim namespace: Fix functional tests.
Fix some paths to new locations:
- Makefile: Fix nvim binary path.
- test49  : 459: Fix nvim binary path.
- test89  :  62: Fix testdir root.
                 Fix corresponding expected result.
- test105 :  10: Testing fnamemodify to reduce path to use ~ prefix.
                 Fix faked home directory.
                 Fix corresponding expected result.
             26: Testing fnamemodify with r modifier.
                 Fix out-of-project prefix removal.
                 Fix corresponding expected result.
2014-05-15 20:46:02 +02:00
Thomas Wienecke
6f681faba7 Add basic Doxyfile. 2014-03-31 07:36:00 -03:00
Thiago de Arruda
e995b21567 Re-integrate FEAT_FILTERPIPE code
This feature was accidentally removed when doing the initial import from vim. It
makes vim use pipes instead of temporary files for filtering buffers through
shell commands.

I found that this was missing when looking for references of
SHELL_READ/SHELL_WRITE outside mch_call_shell`.

When `mch_call_shell` is reimplemented on top of libuv process management
facilities, pipes will always be used for communication with child processes so
it makes sense to enable the feature permanently.
2014-03-27 17:36:32 -03:00
Thomas Wienecke
1f578ec5a1 Add unit tests for mch_[gs]etperm.
Use preprocessor trick proposed by @mahkoh to import 'defines' like
S_IRUSR.
2014-03-15 11:50:22 -03:00
Thiago de Arruda
f6ace9962d Refactor travis build to use clang's sanitizers
- Valgrind configuration removed
- Fix errors reported by the undefined behavior sanitizer
- Travis will now run two build steps:
  - A normal build of a shared library for unit testing(in parallel with gcc)
  - A clang build with some sanitizers enabled for integration testing.

After these changes travis will run much faster, while providing valgrind-like
error detection.
2014-03-13 15:26:28 -03:00
Thiago de Arruda
2f1a2eb0f2 Fix free_all_mem and EXITFREE definition
Because of the '$' in `if(DEFINED $ENV{VALGRIND_CHECK})` EXITFREE wasn't being
defined, so the `free_all_mem` wasn't being included or called in the resulting
binary.

This commit fixes that, and also adds includes needed for `free_all_mem`
compilation.
2014-03-07 11:58:06 -03:00
Caleb Spare
7e8c8cf5a1 Anchor gitignore paths
This makes the intention more explicit and avoid any accidental
matching elsewhere in the tree.

Conflicts:
	.gitignore
2014-03-03 22:24:29 +00:00
Scott Nielsen
79882bc7bd Use cmake module instead of shared for nvim-test
On a Mac using shared creates libnvim-test.dylib which cannot be found
by the hardcoded .so extension in helpers.moon, causing the unittests to
fail. However, using module creates libnvim-test.so, allowing the tests
to run. There will still be problems running the tests on windows,
because both shared and module create dll file which will not be found
by in helpers.moon.
2014-02-28 05:50:16 -03:00
Thiago de Arruda
d04ca90f5c Add basic infrastructure for unit testing
Tests will be written using the [moonscript](http://moonscript.org/) language,
a lua 'dialect' that is whitespace-significant and has a syntax similar to
coffeescript. The test framework used is [busted](http://olivinelabs.com/busted/),
a bdd framework for lua/moonscript.

Luajit has a nice ffi module, which lets lua programs link shared libraries and
call it's functions without writing any C code.

To take advantage of this fact for testing C functions, a new target was added
to CMakeLists.txt, which compiles neovim as a shared library that is loaded by
the process running the tests.

This commit adds necessary code for downloading and installing a lua package
manager(luarocks) locally. It wasn't added as a subtree because there are quite
a few blobs in its source tree.
2014-02-27 17:55:10 -03:00
Thiago de Arruda
cb9a368445 Add configuration to help debug memory leaks 2014-02-26 15:48:26 -03:00
Thiago de Arruda
de7d5cec8e Add local.mk include in makefile
This can be used by devs that need their own custom targets
2014-02-25 11:55:36 -03:00
Kornel Lugosi
b4a1237f2a Remove trailing spaces from gitignore 2014-02-22 17:26:55 +01:00
Thiago de Arruda
9f380dda82 Set vim binary as default make target 2014-02-01 11:27:24 -03:00
Thiago de Arruda
6b0b466585 Automate libuv download and build 2014-02-01 11:20:02 -03:00
Thiago de Arruda
72cf89bce8 Import vim from changeset v5628:c9cad40b4181
- Cleanup source tree, leaving only files necessary for compilation/testing
- Process files through unifdef to remove tons of FEAT_* macros
- Process files through uncrustify to normalize source code formatting.
- Port the build system to cmake
2014-01-31 10:39:15 -03:00