Commit Graph

768 Commits

Author SHA1 Message Date
Thiago de Arruda
5f5e39323e API: Move vim_to_object to helpers.c 2014-05-13 09:33:41 -03:00
Thiago de Arruda
57df213b86 API: Implement vim_set_current_line 2014-05-13 09:33:41 -03:00
Thiago de Arruda
d488b7de1d API: Extract error boilerplate into a macro 2014-05-13 09:33:40 -03:00
Thiago de Arruda
9f25a4153c API: Implement buffer_{get,set}_line 2014-05-13 09:33:40 -03:00
Thiago de Arruda
7b04674174 API: Move helper functions to another module 2014-05-13 09:33:40 -03:00
Thiago de Arruda
e07099cb78 API: Implement vim_change_directory 2014-05-13 09:33:40 -03:00
Thiago de Arruda
d8f8521915 API: Implement vim_list_runtime_paths 2014-05-13 09:33:36 -03:00
Thiago de Arruda
b812e84bb5 API: Implement vim_strwidth 2014-05-12 21:26:56 -03:00
Thiago de Arruda
ba11128077 API: Implement vim_eval
The vimscript object conversion function was adapted from the version found in
'if_py_both.h' in the upstream source. It was also required to re-add the
`dict_lookup` function that was lost during the initial import.
2014-05-12 21:26:56 -03:00
Thiago de Arruda
d98ca3ea98 API: Implement vim_command 2014-05-12 21:26:56 -03:00
Thiago de Arruda
def747da7f Fix jumps depending on unitialized values
Reported by valgrind
2014-05-12 21:26:56 -03:00
Thiago de Arruda
12fba26110 Add server module for accepting API connections
The `NEOVIM_LISTEN_ADDRESS` environment variable can be set to customize the
address where Neovim will listen for connections. If it's not set, a random
socket/pipe will be created, and the `NEOVIM_LISTEN_ADDRESS` will be updated
accordingly.
2014-05-12 21:26:49 -03:00
Thiago de Arruda
f9c06e47c4 Add channel module
- Add channel module that exposes the API over arbitrary streams
- Add `xmemdup` for duplicating memory chunks
- Make job exit callback optional
2014-05-12 19:28:30 -03:00
Thiago de Arruda
b3268d0712 Refactor API types and prototypes
- Split functions with multiple files in the 'api' subdirectory
- Move/Add more types in the 'api/defs.h' header
- Add more prototypes
- Refactor scripts/msgpack-gen.lua
- Move msgpack modules to 'os' subdirectory
2014-05-12 19:28:30 -03:00
Thiago de Arruda
fc22317389 Fix update of pending_reqs in write_cb 2014-05-12 19:28:30 -03:00
Thiago de Arruda
17b275b23a Add teardown function for the event.c module
Also move the `job_teardown` call from os_unix.c to the event module
2014-05-12 19:28:30 -03:00
Thiago de Arruda
519fd1deb6 Refactor modules to use handle data accessors
The job, rstream and wstream modules now use handle data accessors
2014-05-12 19:28:30 -03:00
Thiago de Arruda
7f00608d57 Add helpers for accessing data in libuv handles
Libuv handles have a single generic pointer for storing user data, this adds
some functions for adding/retrieving pointers to "slots" in the new `HandleData`
structure, which increase flexibility when using shared handles(job streams for
example)
2014-05-12 19:28:30 -03:00
Thiago de Arruda
51ee26fe68 Implement generic map on top of khash
Implement a generic string->pointer associative array on top of the khash macro
library, providing a nice API for simple hash table requirements. (khash gives
lot of control with a not-so-friendly API, which is unnecessary on most cases)
2014-05-12 19:28:25 -03:00
Thiago de Arruda
5b7a9d5780 Add --with-pic flag to msgpack configuration 2014-05-12 17:06:54 -03:00
Justin M. Keyes
f24565c2b8 Merge #688 'Refactoring of two-iteration anti-pattern in msg_show_console_dialog()' 2014-05-12 11:15:51 -04:00
Harsh Kumar
cfe57fdb60 Style corrections in the two new functions
Style changes in the two new function:
cpy_hotkeys_and_msg() & console_dialog_alloc()
2014-05-12 11:14:16 -04:00
Harsh Kumar
af05207ce7 Add new functions for memory alloction & data copy
From msg_show_console_dialog(), a new function was created
for memory allocation for hotkeys & dialog string.
Similarly, another function created for copying hotkeys
& dialog string.
2014-05-12 11:14:16 -04:00
Harsh Kumar
1b21cf5c26 Simple Split 2-iter loop: msg_show_console_dialog
Simply spliting the 2-iter loop into code for computing
size of memory & for copying to allocated memory
2014-05-12 11:14:16 -04:00
Stefan Hoffmann
6ec5457308 remove unused parameter from buf_store_file_info 2014-05-10 12:25:45 +02:00
Justin M. Keyes
1a3ee71de2 Merge pull request #619 from stefan991/mch_stat-cleanup
Replace `struct stat` with `FileInfo`
2014-05-09 15:33:00 -04:00
Stefan Hoffmann
eae498c4c5 removed mch_lstat() and mch_stat() macros 2014-05-09 15:49:34 +02:00
Stefan Hoffmann
65abdad02a replaced last mch_stat() and mch_lstat()
files: memline.c and fileio.c
2014-05-09 15:49:33 +02:00
Stefan Hoffmann
c41535d69d replaced mch_stat() in buffer.c 2014-05-09 15:49:33 +02:00
Stefan Hoffmann
8e8dae71da replaced some mch_lstat() 2014-05-09 15:49:33 +02:00
Stefan Hoffmann
902ad8d94d replaced some mch_stat() with os_get_file_info() 2014-05-09 15:49:33 +02:00
Stefan Hoffmann
a080819c3e replaced mch_fstat() with os_file_get_info_fd() 2014-05-09 15:49:33 +02:00
Stefan Hoffmann
aff9673076 implemented FileInfo struct
This struct is a wrapper around `uv_stat_t` to hide the stat information
inside `src/os/`.
The stat file attribute will be private after all refactorings concerning
file informations are done.
2014-05-09 15:49:33 +02:00
Stefan Hoffmann
9784dabb50 implemented os_file_get_size() 2014-05-09 15:49:33 +02:00
Stefan Hoffmann
d936bb82ad use os_getperm() in f_getfperm() 2014-05-09 15:49:33 +02:00
Stefan Hoffmann
edbb687b73 replaced some mch_stat() with os_file_exists() 2014-05-09 15:49:32 +02:00
Josh Davis
f3dda65de1 Update CONTRIBUTING.md with current info
- Finish what @ashleyh started.
- Add section for Getting Started with Neovim.
- Add section for commit messages.
- Trim down on wording to keep it short.
2014-05-08 16:58:15 -05:00
aph
b9cb2332d3 update CONTRIBUTING.md 2014-05-07 21:18:57 -05:00
Felipe Oliveira Carvalho
ee72c2b18d Delete the lalloc() function 2014-05-07 15:52:27 -04:00
Felipe Oliveira Carvalho
65273be060 No OOM error in make_filter_cmd() 2014-05-07 15:52:27 -04:00
Felipe Oliveira Carvalho
8704a5832b Replace lalloc() with xmalloc() 2014-05-07 15:52:27 -04:00
Justin M. Keyes
973baa2a06 coveralls upload should not fail the CI build
- swallow error code
2014-05-07 13:50:30 -04:00
Justin M. Keyes
df4f88fe31 Merge pull request #644 from philix/log
Macro-based log utility for Neovim
2014-05-06 21:50:25 -07:00
Dane Summers
85459327ba Prevent preserve_exit() from executing more than once.
https://github.com/neovim/neovim/issues/563
2014-05-06 13:53:22 -04:00
Felipe Oliveira Carvalho
151382d533 Introduce os_localtime_r() and os_get_local_time()
Replace localtime() with os_localtime_r() in `eval.c` and `undo.c`.
2014-05-06 09:22:39 -03:00
Felipe Oliveira Carvalho
ee62510d4e Macro-based log utility for Neovim
This commit introduces 4 macros (for different log levels) that can be used
to log messages to $HOME/.nvimlog:

 - DLOG: log a debug message (e.g. `DLOG("sum(%d, %d): %d", x, y, sum(x, y));`)
 - ILOG: log some useful information (e.g. `ILOG("Main loop started")`)
 - WLOG: log a warning (e.g. `WLOG("Command not found: %s", command)`)
 - ELOG: log an error (e.g. `ELOG("Out of memory. Exiting.")`)

All these macros are disabled if `NDEBUG` or `DISABLE_LOG` is defined. This
guarantees that a `Release` build won't log anything.

`MIN_LOG_LEVEL` can be defined to reduce the verbosity of the log. The log
levels are:

```
DEBUG_LOG_LEVEL     0
INFO_LOG_LEVEL      1
WARNING_LOG_LEVEL   2
ERROR_LOG_LEVEL     3
```

`MIN_LOG_LEVEL` is 0 by default enabling all levels. If `MIN_LOG_LEVEL` is set
to 2, for example, only warnings and errors will be logged.

That's how the log looks like:

```
     DATETIME   LOG_LEVEL  FUNCTION  LINE  PID      FORMATTED MESSAGE

2014/05/01 23:46:14 [info @ main_loop:582] 44376 - Starting Neovim main loop.
2014/05/01 23:46:31 [info @ main_loop:582] 44400 - Starting Neovim main loop.
```
2014-05-06 09:22:39 -03:00
Felipe Oliveira Carvalho
c53d3f0071 Use REGEXP_DEBUG to enable log-based regexp debugging
ENABLE_LOG is too broad to be used only to enable logging in regexp_nfa.c. Use
REGEXP_DEBUG instead.

ENABLE_LOG was defined by checking REGEXP_DEBUG in the first place.
2014-05-06 09:22:39 -03:00
Matthias Beyer
d910ef2099 removed vim_free() function 2014-05-05 18:40:07 -04:00
Matthias Beyer
f9d4c78ddc replaced vim_free() calls with free() calls 2014-05-05 18:38:52 -04:00
Matthias Beyer
c5cac800e7 Replace vim_free() implementation
This replaces the vim_free() implementation with a free() call and adds
a deprecated flag for the doxygen documentation.
2014-05-04 15:33:33 -04:00