aboutsummaryrefslogtreecommitdiff
path: root/.nvim.lua
blob: e87b017335f0f4d8b6c3ecdef954b5043da28655 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
local spdx_header = {
  "// SAME Analog Modular Ecosystem",
  "//",
  "// / SPDX-FileCopyrightText: 2026 Denis Chevalier <perso@denischevalier.fr>",
  "// / SPDX-License-Identifier: CC-BY-SA-4.0",
  "// / SPDX-License-Identifier: CERN-OHL-S-2.0+",
  "// / SPDX-License-Identifier: GPL-3.0-or-later",
  "//",
  "// The prose, explanatory text, rendered figures, tables, and mathematical",
  "// content of this specification are licensed under CC BY-SA 4.0. If a later",
  "// version of CC BY-SA is published, the author grants permission to distribute",
  "// this work under that later version as well.",
  "//",
  "// Hardware designs contained herein (schematics, PCB layouts, mechanical",
  "// drawings, and CAD models) are licensed under CERN-OHL-S-2.0+.",
  "//",
  "// All executable code, helper libraries (`lib/*`), metrology assertions, and",
  "// embedded verification scripts throughout the source documents are licensed",
  "// under the GNU General Public License v3.0 or later (GPL-3.0-or-later).",
  "",
  "",
}

vim.api.nvim_create_autocmd("BufNewFile", {
  pattern = "*.typ",
  callback = function(args)
    -- Insert header into new file
    vim.api.nvim_buf_set_lines(args.buf, 0, -1, false, spdx_header)
    -- Move cursor to the line below the header
    vim.api.nvim_win_set_cursor(0, { #spdx_header, 0 })
  end,
})