diff --git a/README.md b/README.md index 9fa8d20..b4e9a77 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,65 @@ - [🇯🇵 Japanese version](https://github.com/willelz/nvim-lua-guide-ja/blob/master/README.ja.md) - [🇷🇺 Russian version](https://github.com/kuator/nvim-lua-guide-ru) +--- + + + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [Getting started using Lua in Neovim](#getting-started-using-lua-in-neovim) + - [Translations](#translations) + - [Introduction](#introduction) + - [Learning Lua](#learning-lua) + - [Existing tutorials for writing Lua in Neovim](#existing-tutorials-for-writing-lua-in-neovim) + - [Companion plugins](#companion-plugins) + - [Where to put Lua files](#where-to-put-lua-files) + - [init.lua](#initlua) + - [Modules](#modules) + - [Runtime files](#runtime-files) + - [Using Lua from Vimscript](#using-lua-from-vimscript) + - [:lua](#lua) + - [:luado](#luado) + - [Sourcing Lua files](#sourcing-lua-files) + - [luaeval()](#luaeval) + - [v:lua](#vlua) + - [Tips](#tips) + - [The vim namespace](#the-vim-namespace) + - [Using Vimscript from Lua](#using-vimscript-from-lua) + - [vim.api.nvim_eval()](#vimapinvim_eval) + - [vim.api.nvim_exec()](#vimapinvim_exec) + - [vim.api.nvim_command()](#vimapinvim_command) + - [vim.cmd()](#vimcmd) + - [vim.api.nvim_replace_termcodes()](#vimapinvim_replace_termcodes) + - [Managing vim options](#managing-vim-options) + - [Using api functions](#using-api-functions) + - [Using meta-accessors](#using-meta-accessors) + - [Managing vim internal variables](#managing-vim-internal-variables) + - [Using api functions](#using-api-functions-1) + - [Using meta-accessors](#using-meta-accessors-1) + - [Calling Vimscript functions](#calling-vimscript-functions) + - [vim.fn.{function}()](#vimfnfunction) + - [Defining mappings](#defining-mappings) + - [Defining user commands](#defining-user-commands) + - [Defining autocommands](#defining-autocommands) + - [Defining syntax/highlights](#defining-syntaxhighlights) + - [General tips and recommendations](#general-tips-and-recommendations) + - [Reloading cached modules](#reloading-cached-modules) + - [Notes about Vimscript <-> Lua type conversion](#notes-about-vimscript---lua-type-conversion) + - [Setting up linters/language servers](#setting-up-linterslanguage-servers) + - [Debugging Lua code](#debugging-lua-code) + - [Testing Lua code](#testing-lua-code) + - [Using Luarocks packages](#using-luarocks-packages) + - [Miscellaneous](#miscellaneous) + - [vim.loop](#vimloop) + - [vim.lsp](#vimlsp) + - [vim.treesitter](#vimtreesitter) + - [Transpilers](#transpilers) + + + + ## Introduction The [integration of Lua](https://www.youtube.com/watch?v=IP3J56sKtn0) as a [first-class language inside Neovim](https://github.com/neovim/neovim/wiki/FAQ#why-embed-lua-instead-of-x) is shaping up to be one of its killer features.