diff options
author | Steven Arcangeli <stevearc@stevearc.com> | 2023-09-13 23:52:55 -0700 |
---|---|---|
committer | Steven Arcangeli <stevearc@stevearc.com> | 2023-09-14 07:54:22 -0700 |
commit | 808c7e045d50dcb2ad512ea7fa94baf411654a95 (patch) | |
tree | 4f8bd202ed41fb7f96b850f8800dac75f1e542f1 /scripts | |
parent | e9cc79fd723afccb8c0c16342b913fa6e96879b0 (diff) |
doc: add some recipes to the documentation
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/autoformat_doc.lua | 24 | ||||
-rwxr-xr-x | scripts/generate.py | 13 | ||||
-rw-r--r-- | scripts/options_doc.lua | 2 |
3 files changed, 19 insertions, 20 deletions
diff --git a/scripts/autoformat_doc.lua b/scripts/autoformat_doc.lua index 4880310..f6476d4 100644 --- a/scripts/autoformat_doc.lua +++ b/scripts/autoformat_doc.lua @@ -1,32 +1,20 @@ --- Format synchronously on save -vim.api.nvim_create_autocmd("BufWritePre", { - pattern = "*", - callback = function(args) +-- if format_on_save is a function, it will be called during BufWritePre +require("conform").setup({ + format_on_save = function(bufnr) -- Disable autoformat on certain filetypes local ignore_filetypes = { "sql", "java" } - if vim.tbl_contains(ignore_filetypes, vim.bo[args.buf].filetype) then + if vim.tbl_contains(ignore_filetypes, vim.bo[bufnr].filetype) then return end -- Disable with a global or buffer-local variable - if vim.g.disable_autoformat or vim.b[args.buf].disable_autoformat then + if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then return end -- Disable autoformat for files in a certain path - local bufname = vim.api.nvim_buf_get_name(args.buf) + local bufname = vim.api.nvim_buf_get_name(bufnr) if bufname:match("/node_modules/") then return end - require("conform").format({ timeout_ms = 500, lsp_fallback = true, bufnr = args.buf }) - end, -}) - --- To eliminate the boilerplate, you can pass a function to format_on_save --- and it will be called during the BufWritePre callback. -require("conform").setup({ - format_on_save = function(bufnr) - if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then - return - end -- ...additional logic... return { timeout_ms = 500, lsp_fallback = true } end, diff --git a/scripts/generate.py b/scripts/generate.py index 06fbdb0..1c794ae 100755 --- a/scripts/generate.py +++ b/scripts/generate.py @@ -3,7 +3,7 @@ import os.path import re from dataclasses import dataclass from functools import lru_cache -from typing import Dict, List +from typing import List from nvim_doc_tools import ( Vimdoc, @@ -22,6 +22,7 @@ HERE = os.path.dirname(__file__) ROOT = os.path.abspath(os.path.join(HERE, os.path.pardir)) README = os.path.join(ROOT, "README.md") DOC = os.path.join(ROOT, "doc") +RECIPES = os.path.join(DOC, "recipes.md") VIMDOC = os.path.join(DOC, "conform.txt") OPTIONS = os.path.join(ROOT, "scripts", "options_doc.lua") AUTOFORMAT = os.path.join(ROOT, "scripts", "autoformat_doc.lua") @@ -82,7 +83,7 @@ def update_autocmd_md(): example_lines.extend(f.readlines()) example_lines.extend(["```\n", "\n"]) replace_section( - README, + RECIPES, r"^<!-- AUTOFORMAT -->$", r"^<!-- /AUTOFORMAT -->$", example_lines, @@ -117,6 +118,13 @@ def update_readme_toc(): ) +def update_recipes_toc(): + toc = ["\n"] + generate_md_toc(RECIPES) + ["\n"] + replace_section(RECIPES, r"^<!-- TOC -->$", r"^<!-- /TOC -->$", toc) + subtoc = add_md_link_path("doc/recipes.md", toc) + replace_section(README, r"^<!-- RECIPES -->$", r"^<!-- /RECIPES -->$", subtoc) + + def gen_options_vimdoc() -> VimdocSection: section = VimdocSection("Options", "conform-options", ["\n", ">lua\n"]) with open(OPTIONS, "r", encoding="utf-8") as f: @@ -169,5 +177,6 @@ def main() -> None: update_options() update_autocmd_md() update_md_api() + update_recipes_toc() update_readme_toc() generate_vimdoc() diff --git a/scripts/options_doc.lua b/scripts/options_doc.lua index 5dab627..9073369 100644 --- a/scripts/options_doc.lua +++ b/scripts/options_doc.lua @@ -13,6 +13,7 @@ require("conform").setup({ }, -- If this is set, Conform will run the formatter on save. -- It will pass the table to conform.format(). + -- This can also be a function that returns the table. format_on_save = { -- I recommend these options. See :help conform.format for details. lsp_fallback = true, @@ -20,6 +21,7 @@ require("conform").setup({ }, -- If this is set, Conform will run the formatter asynchronously after save. -- It will pass the table to conform.format(). + -- This can also be a function that returns the table. format_after_save = { lsp_fallback = true, }, |