Compare commits

...

29 Commits

Author SHA1 Message Date
iGor milhit f5260511d9 spell: add two words in the French dictionary
Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 12:06:29 +02:00
iGor milhit b38ae3f45e
completion: support non ascii with cmp-buffer
- Supports non ASCII chars in text completion (cmp-buffer).
- Restore the luasnip configuration inside the nvim-cmp configuration,
  as it is indeed closely related. I didn't understood it in the first
  place.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:53 +02:00
iGor milhit 4503013a65
snippets: add a snippet for AoU stats commit
Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit 9fb724a32d
snippets: add snippet for incremental note commits
Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit 69aa4a5cfd
snippets: add HTML snippets for library portal
- Creates a new file for custom HTML snippets.
- Adds three snippets to be used when updating the clinical medicine
  library portal with bibliographic descriptions:
  - A main HTML structure with CSS styling.
  - An item with some bibliographic description examples.
  - A list item with a link to an ebook online.
- Improves the LuaSnip configuration and moves it outside the nvim-cmp
  configuration.
- Increments the French personal dictionary.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit a073c95ebe
snippets: add a snippet for commit message
- Adds a snippet for commit message to save working hours.
- Remove redundant markdown snippet for the date.
- Improve the markdown snippet for incremental note entry.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit 525309113a
json: add configuration for JSON
- Adds the `json` parser to the treesitter languages for linting
  purpose.
- Adds `jsonls` as language server provider for JSON.
- Creates the `after/ftplugin` folders.
- Sets specific settings for JSON for folding method.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit 373d358e4b
snippets: fix the inc front matter
- Fixes the front matter for the incremental notes files, removing
  unnecessary metadata and adding the id.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit cbf304d45c
telescope: add a plugin to use Ag
- Adds a plugin to use Ag The Silversearcher with Telescope.
- Improves some comments.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:52 +02:00
iGor milhit f0f0bc6a47
config: set changes preview
- Sets the `inccommand` option to `nosplit` to preview the changes
  before accepting them with the substitute command.
- Removes unused configuration.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:51 +02:00
iGor milhit 30225fd570
mkdnflow: adapt follow link behavior
- Sets the `perspective.priority` to `current` to get the follow link
  feature behaves as I need, relative to the current buffer.
- Fixes the new file template to avoid a blank column at the begining
  (results in an invalid YAML syntax).

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:51 +02:00
iGor milhit 1ac295701b
plugin: install, configure Grammalecte
- Grammalecte is a French language checker. This plugin requires the
  python package `Grammalecte` that provide `grammalecte-cli` and
  `grammalecte-server`.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:51 +02:00
iGor milhit c940b3f6af
completion: set buffer completion to 4 chars
- Set the keyword_length to 4 in order to lighten the buffer completion.
- Add a markdown snippet to add a tags line in my incremental notes.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:51 +02:00
iGor milhit e3e920572d
plugin: ensure to use the legacy tag for fidget
- Ensures to use the legacy tag for the fidget plugin, as it will be
  under active development and rewritting.

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:51 +02:00
iGor milhit ed705e0321
completion: add completion for text in the buffer
- Adds completion capabilities for text (in the current buffer), with
  the help of `cmp-buffer`).
- Expand the French dictionnary.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:51 +02:00
iGor milhit 57b003e89d
snippets: fix wrong function in md snippets
- Replace `get_date` by `get_datetime` in the frontmatter snippets for
  markdown.

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:51 +02:00
iGor milhit 6291f35599
plugins: add a plugin to manage terminal
- Adds the ToogleTerm plugin that allows to improve the managment of
  terminal buffers.
- Configures it.

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:51 +02:00
iGor milhit 5a95663e73
snippets: fix the date function for markdown
Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:50 +02:00
iGor milhit d27fc955bd
md preview: fix the node package installation.
- Fixes the markdown preview node package installation.
- Removes the theme configuration.

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:50 +02:00
iGor milhit c467b30dbc
zenmode: Improve slightly the configuration
- Disables the foldcolumn which displays the fold level.
- Removes the backdrop to get a better color experience.
- Removes the colorcolumn in zen mode.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:50 +02:00
iGor milhit da9ea3751a
LSP: install and configure texlab
- Installs and configure texlab which provides LSP and linter for LaTeX.
  Should also allow to build a project, but It is failling right now, I
  don't get why.
- Adds a markdown snippet to get the number of the curret day.
- Adds a markdown snippet to get the current date.
- Improves the syntax of the markdown snippets descriptions.
- Documents the feature of the plugin that provides the snippets search
  through telescope.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:50 +02:00
iGor milhit 558932130f
snippets: add some markdown snippets
- Adds a snippet to create a link in markdown reference syntax.
- Adds a frontmatter snippet for my INC notes.
- Replace the fronmatter snippet for markdown with a formatted one,
  easier to read.
- Improves the description of my markdown snippets.
- Enables the search highlighting.
- Removes unnecessary lualine separator.
- Renames the neo-tree plugin file.
- Lazy loads the zen-mode for markdown files.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:50 +02:00
iGor milhit 423721e92d
snippets: load my own snippets
- Renames the snippets folder to my_snippets.
- Loads my snippets.
- Creates two snippet example available for all filetypes.
- Creates three snippets for markdown filetype.
- Adds the telescope luasnip plugin.
- Sets a keymaping to fuzzy search all available snippets (<leader>ss).

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:50 +02:00
iGor milhit d5abb8bc15
plugins: configure zen mode to be zenier
- Removes the sign column and disables the git sign plugin.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:50 +02:00
iGor milhit 10f9cd5fbb
python: fix the pyenv path
- Fixes the concatenation of strings for the pyenv path.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:50 +02:00
iGor milhit 29781fb96e
global: add completion capabilites
- Add completion capabilities for paths.
- Add to the pandoc filetype the markdown snippets.
- Add a markdown template for new files created inside mkdnflow.
- Add all useful filetypes for mkdnflow.
- Add a keymap to fuzzy search open buffers (<leader>sb).
- Removes the `vim.env.HOME` variable in the python3 provider, as it is
  not working properly.

Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
2023-08-22 11:57:49 +02:00
iGor milhit c3b5f943f7
markdown: set mkdnflow to conceal links
Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:49 +02:00
iGor milhit 08a762f3b2
global: improve the configuration
- Adds the rainbow_csv plugin to improve CSV file support.
- Sets mutliple filetypes for markdown plugins (`pandoc`, `markdown`).
  - `mkdnflow`.
  - `markdownpreview`.
  - `marksman` language server (but it doesn't work for pandoc
    filetype).
- Sets folding level to 1 to fold from the level 2 headings.
- Sets the python virtualenv as python3 provider.
- Updates the English dictionnaries.

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:57:49 +02:00
iGor milhit a9a660bd1b
plugins: remove and install some
- Removes vim-rhubarb (github related).
- Sets autopairs and vim-surround.
- Adds and configures true-zen and twilight

Co-Authored-by: iGor milhit <igor@milhit.ch>
2023-08-22 11:55:36 +02:00
20 changed files with 642 additions and 18 deletions

View File

@ -0,0 +1,8 @@
-- Specific settings for JSON files
-- Use treesitter for folding
-- Disable the color column
vim.opt.foldmethod="expr"
vim.opt.foldexpr="nvim_treesitter#foldexpr()"
vim.opt.foldlevel=3
vim.opt.colorcolumn=""

107
init.lua
View File

@ -35,6 +35,7 @@ I hope you enjoy your Neovim journey,
P.S. You can delete this when you're done too. It's your config now :)
--]]
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used)
@ -67,11 +68,13 @@ require('lazy').setup({
-- Git related plugins
'tpope/vim-fugitive',
'tpope/vim-rhubarb',
-- Detect tabstop and shiftwidth automatically
'tpope/vim-sleuth',
-- Improve surroundings management
'tpope/vim-surround',
-- NOTE: This is where your plugins related to LSP can be installed.
-- The configuration is done below. Search for lspconfig to find it below.
{
@ -84,7 +87,7 @@ require('lazy').setup({
-- Useful status updates for LSP
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
{ 'j-hui/fidget.nvim', opts = {} },
{ 'j-hui/fidget.nvim', tag = "legacy", opts = {} },
-- Additional lua configuration, makes nvim stuff amazing!
'folke/neodev.nvim',
@ -93,6 +96,7 @@ require('lazy').setup({
{
-- Autocompletion
-- See Configure nvim-cmp at the end of this file
'hrsh7th/nvim-cmp',
dependencies = {
-- Snippet Engine & its associated nvim-cmp source
@ -102,6 +106,12 @@ require('lazy').setup({
-- Adds LSP completion capabilities
'hrsh7th/cmp-nvim-lsp',
-- Adds completion capabilities for text in buffers
'hrsh7th/cmp-buffer',
-- Adds path completion capabilities
'hrsh7th/cmp-path',
-- Adds a number of user-friendly snippets
'rafamadriz/friendly-snippets',
},
@ -153,7 +163,7 @@ require('lazy').setup({
icons_enabled = true,
theme = 'nord',
component_separators = '|',
section_separators = '/',
section_separators = '',
},
},
},
@ -188,6 +198,16 @@ require('lazy').setup({
end,
},
-- Extension to telescope to use Ag (or ripgrep) to filter results
{
'kelly-lin/telescope-ag'
},
-- Allow to search for snippets
{
'benfowler/telescope-luasnip.nvim'
},
{
-- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
@ -220,16 +240,19 @@ vim.opt.rtp:append (vim.fn.stdpath ('data') .. '/site')
-- NOTE: You can change these options as you wish!
-- Set highlight on search
vim.o.hlsearch = false
vim.o.hlsearch = true
-- Preview changes when searching and substituing
-- nosplit avoid to display the preview in a separate split
vim.o.inccommand = "nosplit"
-- Make line numbers default
vim.wo.number = true
-- Set the maximum width of a line
vim.opt.textwidth = 79
-- Set text formatting options
-- vim.opt.formatoptions:append('a')
-- Display the cusor column at 79+1 column
vim.opt.colorcolumn:append('+1')
-- Enable mouse mode
vim.o.mouse = 'a'
@ -266,6 +289,14 @@ vim.o.termguicolors = true
-- Set the spelling for English, French and German.
vim.opt.spelllang = 'en,fr,de'
-- Set the folding level to 1, to allow level 2 headers to be seen.
vim.opt.foldlevel = 1
-- Set a python virtualenv as python3 provider.
-- `vim.env.HOME` uses the neovim API to fetch the $HOME env.
-- The `..` appends strings in lua.
vim.g.python3_host_prog = vim.env.HOME .. '/.pyenv/versions/neovim3/bin/python'
-- [[ Basic Keymaps ]]
-- Keymaps for better default experience
@ -302,6 +333,10 @@ require('telescope').setup {
-- Enable telescope fzf native, if installed
pcall(require('telescope').load_extension, 'fzf')
-- Enable telescope luasnip extension, if installed
pcall(require('telescope').load_extension, 'luasnip')
-- Enable telescope-ag extension, if installed
pcall(require('telescope').load_extension, 'ag')
-- See `:help telescope.builtin`
vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
@ -320,12 +355,14 @@ vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc
vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' })
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sb', require('telescope.builtin').buffers, { desc = '[S]earch [B]uffers' })
vim.keymap.set('n', '<leader>ss', require'telescope'.extensions.luasnip.luasnip , { desc = '[S]earch [S]nippets' })
-- [[ Configure Treesitter ]]
-- See `:help nvim-treesitter`
require('nvim-treesitter.configs').setup {
-- Add languages to be installed here that you want installed for treesitter
ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'typescript', 'vimdoc', 'vim' },
ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'typescript', 'vimdoc', 'vim', 'json' },
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
auto_install = false,
@ -450,12 +487,40 @@ local servers = {
-- rust_analyzer = {},
-- tsserver = {},
marksman = {
ft = {
'markdown',
'pandoc'
}
},
lua_ls = {
Lua = {
workspace = { checkThirdParty = false },
telemetry = { enable = false },
},
},
texlab = {
settings = {
build = {
executable = "tectonic",
args = {
"-X",
"compile",
"%f",
"--syntex",
"--keep-logs",
"--keep-intermediates"
}
}
}
},
-- Require vscode-langservers-extracted
-- https://github.com/hrsh7th/vscode-langservers-extracted
jsonls = {
},
}
-- Setup neovim lua configuration
@ -482,12 +547,26 @@ mason_lspconfig.setup_handlers {
end,
}
-- [[ Configure nvim-cmp ]]
-- [[ Configure nvim-cmp, and LuaSnip ]]
-- See `:help cmp`
local cmp = require 'cmp'
local luasnip = require 'luasnip'
require('luasnip.loaders.from_vscode').lazy_load()
luasnip.config.setup {}
luasnip.config.setup {
-- Extend markdown snippets to pandoc filetype
-- https://github.com/L3MON4D3/LuaSnip/issues/132#issuecomment-1101710309
snippets = {
markdown = {},
},
luasnip.filetype_extend("pandoc", {"markdown"}),
}
-- Load snippets from ~/.config/nvim/LuaSnip/
require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/my_snippets/"})
-- Keymap to reload snippets
-- https://www.ejmastnak.com/tutorials/vim-latex/luasnip/#refreshing-snippets-from-a-separate-vim-instance
vim.keymap.set('n', '<Leader>L', '<Cmd>lua require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/my_snippets/"})<CR>', { desc = 'Reload [L]uaSnippets' })
cmp.setup {
snippet = {
@ -526,7 +605,15 @@ cmp.setup {
},
sources = {
{ name = 'nvim_lsp' },
{
name = 'buffer',
option = {
keyword_length = 4,
keyword_pattern = [[\k\+]],
},
},
{ name = 'luasnip' },
{ name = 'path' },
},
}

View File

@ -0,0 +1,17 @@
-- File: lua/custom/plugins/autopairs.lua
return {
"windwp/nvim-autopairs",
-- Optional dependency
dependencies = { 'hrsh7th/nvim-cmp' },
config = function()
require("nvim-autopairs").setup {}
-- If you want to automatically add `(` after selecting a function or method
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require('cmp')
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
end,
}

View File

@ -0,0 +1,14 @@
-- Plugin to get Grammalecte checks in (neo)vim.
-- Set the path to the grammalecte-cli executable
vim.cmd([[ let g:grammalecte_cli_py = "/usr/bin/grammalecte-cli" ]])
return {
"dpelle/vim-Grammalecte",
ft = {
"pandoc",
"markdown",
"text",
"gitcommit"
}
}

View File

@ -1,14 +1,14 @@
-- makdown-preview.nvim
-- installed with code found at https://github.com/iamcco/markdown-preview.nvim/issues/558#issuecomment-1514701537
-- Force the light theme, no matter the system option is.
vim.cmd([[ let g:mkdp_theme = 'light' ]])
return {
{
"iamcco/markdown-preview.nvim",
ft = "pandoc",
ft = {
'pandoc',
'markdown'
},
lazy = true,
build = "cd app && yarn install",
build = "cd app && npm install && git reset --hard",
},
}

View File

@ -9,10 +9,47 @@ vim.keymap.set({'n','x','v'}, '<leader>tf', '<cmd>MkdnTableFormat<CR>', {desc =
return {
{
"jakewvincent/mkdnflow.nvim",
ft = 'pandoc',
ft = {
'pandoc',
'markdown'
},
lazy = true,
config = function ()
require('mkdnflow').setup({
filetypes = {
md = true,
rmd = true,
markdown = true,
pandoc = true
},
perspective = {
-- Ensure that paths are relative to the current file
priority = "current"
},
links = {
conceal = true,
},
new_file_template = {
use_template = true,
template = [[
---
title:
date: {{ date }}
id: {{ id }}
tags: []
---
]],
placeholders = {
before = {
date = function ()
return os.date("%Y-%m-%dT%H:%M:%S%z")
end,
id = function ()
return os.date("%Y%m%d%H%M%S")
end
},
}
}
})
end
}

View File

@ -1,4 +1,5 @@
-- Trying to add a custom plugin for file tree
-- Plugin for file tree: neo-tree
-- Using the kickstart and the neo-tree documentations
-- Unless you are still migrating, remove the deprecated commands from v1.x
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])

View File

@ -0,0 +1,21 @@
-- In order to manage CSV files
return {
'cameron-wags/rainbow_csv.nvim',
config = true,
ft = {
'csv',
'tsv',
'csv_semicolon',
'csv_whitespace',
'csv_pipe',
'rfc_csv',
'rfc_semicolon'
},
cmd = {
'RainbowDelim',
'RainbowDelimSimple',
'RainbowDelimQuoted',
'RainbowMultiDelim'
}
}

View File

@ -0,0 +1,16 @@
-- A neovim lua plugin to help easily manage multiple terminal windows
-- https://github.com/akinsho/toggleterm.nvim
-- Set ZSH as shell to get it in a terminal buffer
vim.opt.shell = "/usr/bin/zsh"
return {
{
'akinsho/toggleterm.nvim',
version = "*",
opts = {
-- Avoid terminal to be darker than the Nord colorscheme
shade_terminals = false
}
}
}

View File

@ -0,0 +1,35 @@
local api = vim.api
api.nvim_set_keymap("n", "<leader>zn", ":TZNarrow<CR>", {})
api.nvim_set_keymap("v", "<leader>zn", ":'<,'>TZNarrow<CR>", {})
api.nvim_set_keymap("n", "<leader>zf", ":TZFocus<CR>", {})
api.nvim_set_keymap("n", "<leader>zm", ":TZMinimalist<CR>", {})
api.nvim_set_keymap("n", "<leader>za", ":TZAtaraxis<CR>", {})
return {
"Pocco81/true-zen.nvim",
-- Twilight allows to dim text outside of the cursor line.
dependencies = {
"folke/twilight.nvim",
opts = {
-- Set the context to null in order to avoid highlighting to much
-- paragraphs in markdown.
context = 0,
},
},
config = function ()
require('true-zen').setup({
modes = {
ataraxis = {
minimum_writing_area = {
width = 100
}
}
},
integrations = {
twilight = true,
lualine = true
}
})
end
}

View File

@ -0,0 +1,42 @@
-- Zen mode with twilight.
-- Improves the edition experience with distraction free feature.
return {
"folke/zen-mode.nvim",
ft = {
"markdown",
"pandoc"
},
-- Twilight allows to dim text outside of the cursor line.
dependencies = {
"folke/twilight.nvim",
opts = {
-- Set the context to null in order to avoid highlighting to much
-- paragraphs in markdown.
context = 0,
},
},
opts = {
window = {
backdrop = 1,
-- Set the window width (85 columns) and height (80%).
width = 85,
height = .8,
options = {
-- Disable line numbering, signcolumn and colorcolumn.
number = false,
signcolumn = "no",
colorcolumn = "0"
},
},
plugins = {
options = {
enabled = true,
ruler = false,
showcmd = false,
foldcolumn = "0"
},
gitsigns = { enabled = false },
},
},
}

View File

@ -0,0 +1,48 @@
local ls = require("luasnip")
local s = ls.snippet
local t = ls.text_node
local f = ls.function_node
local fmt = require("luasnip.extras.fmt").fmt
-- Function to get the current date
local get_date = function()
return os.date("%Y-%m-%d")
end
return {
s(
{
trig = "hr",
name = "Heures",
dscr = "Insert a commit message for saving the worked hours."
},
{
t("organisation: enregistre les heures")
}
),
s(
{
trig = "ic",
name = "Incremental note commit message",
dscr = "Insert a commit message for my incremental notes commits."
},
fmt(
[[
Incrémente la note du {1}
]],
{
f(get_date, {})
}
)
),
s(
{
trig = "aou",
name = "AoU stats commit message",
dscr = "Commit message for an increment of AoU validation statistics."
},
{
t("r+e: incrémente les stats de validation de l'AoU")
}
)
}

View File

@ -0,0 +1,111 @@
-- My HTML snippets
-- Below, the duplicate of brackets, for instance in the CSS code, is for
-- escaping delimiters.
-- Set the local variables (shortcuts)
local ls = require("luasnip")
local s = ls.snippet
local i = ls.insert_node
local fmt = require("luasnip.extras.fmt").fmt
return {
-- A main snippet setting the outer structure, with the style tag.
-- Should be completed with the nested article item below.
s(
{
trig = "mcim",
name = "Main article structure for MC portal",
dscr = "Insert an HTML structure to add bibliographic description on the clinical medicine portal."
},
fmt(
[[
<article class="mc-{1}-main">
{2}
<style>
.mc-{1}-item > ul > li {{
padding: 0 !important;
}}
.mc-{1}-item li:not([class])::before,
.mc-{1}-item li::before {{
content: none;
}}
</style>
</article>
]],
{
i(1, "Class identifier"),
i(0)
},
{
repeat_duplicates = true
}
)
),
-- Snippet that inserts an article with bibliographic metatada, to be nested
-- in the upper main structure.
s(
{
trig = "mcii",
name = "Item article structure for MC portal",
dscr = "Insert an HTML structure to add an item bibliographic description on the clinical medicine portal."
},
fmt(
[[
<article class="mc-{1}-item">
<ul>
<li>Dorland W. Dorlands illustrated medical dictionary. 4th ed.</li>
<li>Philadelphia: Elsevier, 2020.</li>
<li>Cote : W 13 ed 4</li>
<li>
<a lang="fr"
dir="ltr"
type="html/text"
href="https://slsp-unige.primo.exlibrisgroup.com/articleermalink/41SLSP_UGE/l0hvjc/alma991008098789705502"
hreflang="français"
rel="nofollow"
target="_blank">
Le document dans le catalogue Swisscovery
</a>.
</li>
</ul>
<span placeholder="coins metadata"></span>
</article>{2}
]],
{
i(1, "Class identifier"),
i(0)
},
{
repeat_duplicates = true
}
)
),
-- Snippet that insert a list item with a link to an ebook online.
s(
{
trig = "eli",
name = "List item for an ebook link",
dscr = "Insert a link for an ebook nested in a list item. Designed for the medicine portal HTML structure."
},
fmt(
[[
<li>
<a dir="ltr"
type="html/text"
href="{1}"
lang="{2}"
hreflang="{3}"
ref="nofollow"
target="_blank">
Livre électronique en ligne
</a>.
</li>
]],
{
i(1, "Ebook URL"),
i(2, "Language code (2 chars)"),
i(3, "Language name")
}
)
)
}

View File

@ -0,0 +1,172 @@
local ls = require("luasnip")
local s = ls.snippet
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local fmt = require("luasnip.extras.fmt").fmt
-- Function to get the datetime
-- with daylight saving time
-- according to the locale
local get_datetime = function()
return os.date("%Y-%m-%dT%H:%M:%S%z")
end
-- Function to get the current date
local get_date = function()
return os.date("%Y-%m-%d")
end
-- Function to get the current month
local get_month = function()
return os.date("%B")
end
-- Function to get the current year
local get_month_year = function()
return os.date("%B-%Y")
end
-- Function to get an id based on the datetime
local get_id = function()
return os.date("%Y%m%d%H%M%S")
end
-- Function to get the number of the current day
local get_day = function()
return os.date("%d")
end
return {
s(
{
trig = "dt",
name = "Datetime",
dscr = "Insert the current datetime with locale daylight saving."
},
{
f(get_datetime, {})
}
),
s(
{
trig = "id",
Name = "ID",
dscr = "Insert an id based on the current datetime."
},
{
f(get_id, {})
}
),
s(
{
trig = "today",
Name = "Today",
dscr = "Insert the number of the current day."
},
{
f(get_day, {})
}
),
s(
{
trig = "ie",
Name = "Inc entry",
dscr = "Insert an Inc entry for today (heading level 2)."
},
fmt(
[[
## {}
]],
{
f(get_day, {})
}
)
),
s(
{
trig = "fm",
name = "YAML frontmatter",
dscr = "Insert a YAML frontmatter for markdown files.\n\nIt has a datetime with the locale daylight saving time, and an ID based on the datetime.\nTab to jump to next text input."
},
fmt(
[[
---
title: {1}
date: {3}
id: {4}
tags: [{2}]
---
]],
{
i(1, "title"),
i(2, "tags"),
f(get_datetime, {}),
f(get_id, {})
}
)
),
s(
{
trig = "inc",
name = "INC YAML frontmatter",
dscr = "Insert a YAML frontmatter for INC notes.\n\nIt has a datetime with the locale daylight saving time, prefilled title, author, categories and tags.\nAdjust the title manually."
},
fmt(
[[
---
title: {1}
date: {2}
id: {4}
tags: [notes, quotidien, {3}]
---
]],
{
f(get_month_year, {}),
f(get_datetime, {}),
f(get_month, {}),
f(get_id, {})
}
)
),
s(
{
trig="reflink",
name = "Reference link",
dscr="Insert a link with reference syntax",
docstring = "[Link text][Reference]\n\n[Reference]: Link Target \"Title\"\n\nTab to jump to next text input. \"Reference\" is automatically repeated."
},
fmt(
[[
[{1}][{2}]
[{2}]: {3}
]],
{
i(1, "Link text"),
i(2, "Reference"),
i(3, "Link target")
},
{ repeat_duplicates = true }
)
),
s(
{
trig = "tags",
name = "Tags",
dscr = "Insert a one-line tags array, in a text file (markdown)."
},
fmt(
[[
tags: [{}]
]],
{
i(1, "tags")
}
)
)
}

BIN
spell/de.utf-8.spl 100644

Binary file not shown.

BIN
spell/de.utf-8.sug 100644

Binary file not shown.

15
spell/en.utf-8.add 100644
View File

@ -0,0 +1,15 @@
AoU
Floriane
Séverine
HEG
neovim
lua
InfoBiblio
Réaménagement
biodiversité
hyperindustrialisés
lacto-fermentation
d'engrain
écorcheuse
écopolitique
Centralité

Binary file not shown.