Skip to content
Justin M. Keyes edited this page Sep 13, 2016 · 47 revisions

See the Roadmap and :help nvim-features.

Completed

  • eliminate misc2.c
  • Port IO to libuv
  • Migrate legacy integration tests to lua + msgpack API #1286
  • Ruby plugin host
  • Python plugin host
    • Includes compatibility layer for legacy Vim python interface if_pyth (:python, :pydo, :pyfile)
  • End-to-end automation of documentation, analysis, nightly builds, etc.
  • Enhance build system with lua-based C preprocessor
  • Implement system() with pipes (#978) instead of temp files to improve performance and reliability (1, 2, 3, 4)
  • Use hrtime() (more precise and monotonic) for profiling instead of gettimeofday() #831
  • Update translations (runtime messages--not user manual):
    • pt_BR
    • de
    • sv
  • Implement msgpack remote API #509 #779
  • Remove support for legacy systems and move to C99
    • Remove tons of FEAT_* macros with unifdef
    • Reduce C code from 300k lines to 170k
  • Enable modern compiler features
  • Format entire source with uncrustify
  • Replace autotools build system with CMake
  • Implement continuous integration and test coverage
  • 200+ new unit tests
  • Split large, monolithic files (misc1.c) into logical units (path.c, indent.c, keymap.c, ...)
  • Implement job control ("async")
  • Implement terminal emulator #2076
  • Rework OOM handling to simplify control flow
  • Remove 8.3 filename support #635
  • Use portable string format tokens #574 (improves cross-platform viability)
  • Reduce indiscriminate redraws to improve performance
  • Remove 'proto' directory #155
    • Vim uses a single global header vim.h that is included in every module and includes all other headers. This is bad for documentation (module dependencies are obscured) and incremental building (changing any header file will cause every module to be rebuilt)

Clone this wiki locally