Welcome to the second monthly newsletter for Neovim, the project that dreams to be the next text editor that we’ll all love.
In the discussion about default Neovim settings, the idea of having a default colorscheme was brought up. A later issue was started to determine what colorscheme would be used.
It was decided that a new colorscheme would be great for Neovim. To do this, the Neovim collaborators will create a contest that will allow submissions of colorschemes. After some time, the submissions will close and then a new Poll will be started to let the community pick the winner.
The winner(s) will be awarded the prize money and their colorschemes will forever be enshrined in distributions of Neovim.
Stay tuned to the Neovim Twitter for when the submission guidelines and process are announced.
Concern arose over Neovim using Vim’s license. While the Vim license still applies to the original Vim code, newly written code wasn’t explicitly being addressed and could be relicensed.
The community settled on using Apache 2.0. The license info was then updated and all contributors have been asked to sign a CLA by filling out this document and adding your name to this Wiki page.
This means that if you’ve contributed code before the switch to Apache 2.0, your code is still under the old Vim license. It won’t become part of Apache 2.0 unless you sign the CLA.
@tarruda finished his implementation that provides a
channel_send_call
function that allows code to be ran in other scripting
engines such as Python, Ruby, and more.
As @tarruda notes, the code runs in another process, blocks until the client responds, has a 3 second timeout and has a call stack limit of 20.
@tarruda opened a pull request that proposed various fixes and improvements to some of his past work. The changes targeted the jobs API, streams API and lastly the events API. All of these past features were discussed in last month’s newsletter.
These changes included the ability to send large amounts of data through streams, added code for msgpack parsing failures, and an ability to lock onto a set of event sources.
The ability to build Neovim on Windows has been popular and a target for months. The entire discussion can be viewed in this issue.
Recent progress has been made by @equalsraf in his attempt to build Neovim under MinGW.
For help building on other platforms, be sure to check out the newly minted Building Neovim page on the Wiki for all things related to compiling.
Garray.c is a data structure from Vim that provides a “growable array” to the editor. It has been the target of many pull requests in the past.
The latest addition by @philix gives an easier way to
append to the array. While garray
is still being improved, eventually it will
be phased out by a more robust solution.
A function called mch_libcall()
was temporarily removed during some of the
cleanup. It is called in Vim by using the libcall()
function
and is used by some plugins.
Discussion started around its temporary removal and how to re-add it to retain compatibility with Vim. @aktau proposed a solution and then created a pull request with the new changes which have since been merged.
In last month’s issue, we talked about the changes to mch_stat
calls. This refactoring was continued by
@stefan991 to add a new structure that encapsulates st_dev
and st_ino
of
libuv’s uv_stat_t
.
Contributors to Neovim live in countries all over the world. Many native speakers have been busy updating the translations in their native languages.
Translations that already have been updated include German and Brazilian Portuguese. With others like Spanish and Swedish in the works.
@stefan991 customized the Doxygen theme to style it similar to how Neovim.io looks. It was then added to the codebase for future builds.
Effort was made to replace vim_strncpy
with strlcpy
and
it was merged in successfully. However there was a bit of
fallout from the changes.
In response, @aktau created a master issue to collaborate on the process and discuss the best way forward.
To quote @philix, he summed it up best in his comment:
String handling is really important in a text editor and the current codebase doesn’t have good abstractions for string handling (even though we’ve been slowly improving it). It’s a miracle how much can be accomplished with so little abstraction (and a lot of low level code).
Neovim’s development documentation that is autogenerated by Doxygen is in the process of being moved to the neovim.io domain.
In addition to that, the user documentation for Neovim is being moved there as well.
To aid in the process, @Marvim, Neovim’s newly appointed resident automaton (aka bot), will be configured to automate the process. Just don’t talk to him about life.
If you’d like to help support development, you may donate using Bitcoins here:
1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ
or back the team on the Neovim
Bountysource page.
If you an experienced developer or inexperienced but wanting to learn, visit the GitHub repo and check out the README, CONTRIBUTING guide, and finally the Wiki to learn more.
There are plenty of opportunities to help out and plenty of things to do.
Do you have any feedback or suggestions regarding this second newsletter? Feel free to reach out through the Neovim Twitter.
Also be sure to subscribe to the RSS feed to stay up-to-date on what is happening in the Neovim world. The next newsletter will be released around the first Friday of August.
Until next time. :wq
Find more updates in the news archive. There's also an RSS feed.
Neovim is a Vim-based text editor engineered for extensibility and usability, to encourage new applications and contributions.
Visit #neovim:matrix.org or #neovim on irc.libera.chat to chat with the team.