<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/lua/vim/_init_packages.lua, branch master</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=master</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2025-12-30T06:44:52Z</updated>
<entry>
<title>build: move shared.lua to _core/</title>
<updated>2025-12-30T06:44:52Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-12-21T02:51:54Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=1d70c96e5b390c23b021930544c44d1d1e95f04f'/>
<id>urn:sha1:1d70c96e5b390c23b021930544c44d1d1e95f04f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>build: ship "_core/*" as bytecode (built-into Nvim binary)</title>
<updated>2025-12-30T06:44:24Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-08-29T03:43:10Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=20e77c5d886af54d1f7b6844cffc11129f579ad9'/>
<id>urn:sha1:20e77c5d886af54d1f7b6844cffc11129f579ad9</id>
<content type='text'>
Problem:
We want to encourage implementing core features in Lua instead of C, but
it's clumsy because:
- Core Lua code (built into `nvim` so it is available even if VIMRUNTIME
  is missing/invalid) requires manually updating CMakeLists.txt, or
  stuffing it into `_editor.lua`.
- Core Lua modules are not organized similar to C modules, `_editor.lua`
  is getting too big.

Solution:
- Introduce `_core/` where core Lua code can live. All Lua modules added
  there will automatically be included as bytecode in the `nvim` binary.
- Move these core modules into `_core/*`:
  ```
  _defaults.lua
  _editor.lua
  _options.lua
  _system.lua
  shared.lua
  ```

TODO:
- Move `_extui/ =&gt; _core/ui2/`
</content>
</entry>
<entry>
<title>docs: move vim.system to own section</title>
<updated>2025-07-10T12:34:58Z</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2025-07-10T09:32:17Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=e644038f06b4e3401f9b496bbe4337bfe8b18146'/>
<id>urn:sha1:e644038f06b4e3401f9b496bbe4337bfe8b18146</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: type fixes</title>
<updated>2025-06-06T14:36:48Z</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2025-06-05T10:31:51Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=3b6084ddf4f0d49fb0e5d135919c9daacea2a46d'/>
<id>urn:sha1:3b6084ddf4f0d49fb0e5d135919c9daacea2a46d</id>
<content type='text'>
Type fixes caught by emmylua
</content>
</entry>
<entry>
<title>refactor(types): more fixes</title>
<updated>2024-03-06T10:45:22Z</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2024-03-06T10:03:55Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=ea44f74d84f87ce5aff2ef7797be986900bd74a6'/>
<id>urn:sha1:ea44f74d84f87ce5aff2ef7797be986900bd74a6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: type warnings in shared.lua</title>
<updated>2024-02-15T11:32:50Z</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2024-02-15T10:53:51Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=35f453f65df2cab4eaeda99c205d1fda235b7bc9'/>
<id>urn:sha1:35f453f65df2cab4eaeda99c205d1fda235b7bc9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: create function for deferred loading</title>
<updated>2024-02-03T15:53:41Z</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-01-22T17:23:28Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=2e982f1aad9f1a03562b7a451d642f76b04c37cb'/>
<id>urn:sha1:2e982f1aad9f1a03562b7a451d642f76b04c37cb</id>
<content type='text'>
The benefit of this is that users only pay for what they use. If e.g.
only `vim.lsp.buf_get_clients()` is called then they don't need to load
all modules under `vim.lsp` which could lead to significant startuptime
saving.

Also `vim.lsp.module` is a bit nicer to user compared to
`require("vim.lsp.module")`.

This isn't used for some nested modules such as `filetype` as it breaks
tests with error messages such as "attempt to index field 'detect'".
It's not entirely certain the reason for this, but it is likely it is
due to filetype being precompiled which would imply deferred loading
isn't needed for performance reasons.
</content>
</entry>
<entry>
<title>refactor: fix luals warnings</title>
<updated>2023-12-30T16:40:53Z</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2023-12-13T13:04:24Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=d51b6157473c4830313b566116aa3ad38dc97412'/>
<id>urn:sha1:d51b6157473c4830313b566116aa3ad38dc97412</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(lsp): move glob parsing to util (#26519)</title>
<updated>2023-12-22T10:40:01Z</updated>
<author>
<name>Steven Arcangeli</name>
<email>506791+stevearc@users.noreply.github.com</email>
</author>
<published>2023-12-22T10:40:01Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=92204b06e7365cf4c68e6ea8258dce801f0a5df9'/>
<id>urn:sha1:92204b06e7365cf4c68e6ea8258dce801f0a5df9</id>
<content type='text'>
refactor(lsp): move glob parsing to vim.glob

Moving the logic for using vim.lpeg to create a match pattern from a
glob into `vim.glob`. There are several places in the LSP spec that
use globs, and it's very useful to have glob matching as a
generally-available utility.</content>
</entry>
<entry>
<title>feat: add vim.text module (#26069)</title>
<updated>2023-11-16T17:35:54Z</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2023-11-16T17:35:54Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=4bf47222c973c4bc935d6fde106329f8a0e103e3'/>
<id>urn:sha1:4bf47222c973c4bc935d6fde106329f8a0e103e3</id>
<content type='text'>
</content>
</entry>
</feed>
