diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2026-01-20 23:27:13 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2026-01-20 23:34:14 +0100 |
| commit | e20bebd2c730223efb5d71d05330859e8ee791b8 (patch) | |
| tree | 95d36fe499c259747719f3ca778a37155ac14d42 /config/nvim | |
| parent | d8522a98c6a1db7a4b240c4d36cfadb59e22304e (diff) | |
feat(nvim): finally setup lsp and blind keybindings
Diffstat (limited to 'config/nvim')
| -rwxr-xr-x | config/nvim/UltiSnips/tex.snippets | 814 | ||||
| -rw-r--r-- | config/nvim/lua/keybindings.lua | 29 | ||||
| -rw-r--r-- | config/nvim/lua/options.lua | 10 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/blink.lua | 47 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/ultisnips.lua | 11 |
5 files changed, 44 insertions, 867 deletions
diff --git a/config/nvim/UltiSnips/tex.snippets b/config/nvim/UltiSnips/tex.snippets deleted file mode 100755 index 0b0acca..0000000 --- a/config/nvim/UltiSnips/tex.snippets +++ /dev/null @@ -1,814 +0,0 @@ -global !p -texMathZones = ['texMathZone'+x for x in ['A', 'AS', 'B', 'BS', 'C', 'CS', 'D', 'DS', 'E', 'ES', 'F', 'FS', 'G', 'GS', 'H', 'HS', 'I', 'IS', 'J', 'JS', 'K', 'KS', 'L', 'LS', 'DS', 'V', 'W', 'X', 'Y', 'Z']] - -texIgnoreMathZones = ['texMathText'] - -texMathZoneIds = vim.eval('map('+str(texMathZones)+", 'hlID(v:val)')") -texIgnoreMathZoneIds = vim.eval('map('+str(texIgnoreMathZones)+", 'hlID(v:val)')") - -ignore = texIgnoreMathZoneIds[0] - -def math(): - synstackids = vim.eval("synstack(line('.'), col('.') - (col('.')>=2 ? 1 : 0))") - try: - first = next(i for i in reversed(synstackids) if i in texIgnoreMathZoneIds or i in texMathZoneIds) - return first != ignore - except StopIteration: - return False -endglobal - -snippet litemplate "Little basic template" b -\documentclass[a4paper]{article} - -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{textcomp} -\usepackage[french]{babel} -\usepackage{amsmath, amssymb} -\usepackage{amsthm} -\usepackage[svgnames]{xcolor} -\usepackage{thmtools} -\usepackage{lipsum} -\usepackage{framed} -\usepackage{parskip} - -\renewcommand{\familydefault}{\sfdefault} - -\newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}} - -\usepackage{titlesec} -\usepackage{LobsterTwo} -\titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{} -\titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{} -\titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{} - -\title{Titre} -\author{William Hergès\thanks{CPES Science Henri-IV / PSL}} - -\begin{document} - \maketitle - $0 -\end{document} -endsnippet - -snippet template "Basic template" b -\documentclass[a4paper, titlepage]{article} - -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{textcomp} -\usepackage[french]{babel} -\usepackage{amsmath, amssymb} -\usepackage{amsthm} -\usepackage[svgnames]{xcolor} -\usepackage{thmtools} -\usepackage{lipsum} -\usepackage{framed} -\usepackage{parskip} -\usepackage{titlesec} - -\renewcommand{\familydefault}{\sfdefault} - -% figure support -\usepackage{import} -\usepackage{xifthen} -\pdfminorversion=7 -\usepackage{pdfpages} -\usepackage{transparent} -\newcommand{\incfig}[1]{% - \def\svgwidth{\columnwidth} - \import{./figures/}{#1.pdf_tex} -} - -\pdfsuppresswarningpagegroup=1 - -\colorlet{defn-color}{DarkBlue} -\colorlet{props-color}{Blue} -\colorlet{warn-color}{Red} -\colorlet{exemple-color}{Green} -\colorlet{corol-color}{Orange} -\newenvironment{defn-leftbar}{% - \def\FrameCommand{{\color{defn-color}\vrule width 3pt} \hspace{10pt}}% - \MakeFramed {\advance\hsize-\width \FrameRestore}}% - {\endMakeFramed} -\newenvironment{warn-leftbar}{% - \def\FrameCommand{{\color{warn-color}\vrule width 3pt} \hspace{10pt}}% - \MakeFramed {\advance\hsize-\width \FrameRestore}}% - {\endMakeFramed} -\newenvironment{exemple-leftbar}{% - \def\FrameCommand{{\color{exemple-color}\vrule width 3pt} \hspace{10pt}}% - \MakeFramed {\advance\hsize-\width \FrameRestore}}% - {\endMakeFramed} -\newenvironment{props-leftbar}{% - \def\FrameCommand{{\color{props-color}\vrule width 3pt} \hspace{10pt}}% - \MakeFramed {\advance\hsize-\width \FrameRestore}}% - {\endMakeFramed} -\newenvironment{corol-leftbar}{% - \def\FrameCommand{{\color{corol-color}\vrule width 3pt} \hspace{10pt}}% - \MakeFramed {\advance\hsize-\width \FrameRestore}}% - {\endMakeFramed} - -\def \freespace {1em} -\declaretheoremstyle[headfont=\sffamily\bfseries,% - notefont=\sffamily\bfseries,% - notebraces={}{},% - headpunct=,% - bodyfont=\sffamily,% - headformat=\color{defn-color}Définition~\NUMBER\hfill\NOTE\smallskip\linebreak,% - preheadhook=\vspace{\freespace}\begin{defn-leftbar},% - postfoothook=\end{defn-leftbar},% -]{better-defn} -\declaretheoremstyle[headfont=\sffamily\bfseries,% - notefont=\sffamily\bfseries,% - notebraces={}{},% - headpunct=,% - bodyfont=\sffamily,% - headformat=\color{warn-color}Attention~\NUMBER\hfill\NOTE\smallskip\linebreak,% - preheadhook=\vspace{\freespace}\begin{warn-leftbar},% - postfoothook=\end{warn-leftbar},% -]{better-warn} -\declaretheoremstyle[headfont=\sffamily\bfseries,% - notefont=\sffamily\bfseries,% -notebraces={}{},% -headpunct=,% - bodyfont=\sffamily,% - headformat=\color{exemple-color}Exemple~\NUMBER\hfill\NOTE\smallskip\linebreak,% - preheadhook=\vspace{\freespace}\begin{exemple-leftbar},% - postfoothook=\end{exemple-leftbar},% -]{better-exemple} -\declaretheoremstyle[headfont=\sffamily\bfseries,% - notefont=\sffamily\bfseries,% - notebraces={}{},% - headpunct=,% - bodyfont=\sffamily,% - headformat=\color{props-color}Proposition~\NUMBER\hfill\NOTE\smallskip\linebreak,% - preheadhook=\vspace{\freespace}\begin{props-leftbar},% - postfoothook=\end{props-leftbar},% -]{better-props} -\declaretheoremstyle[headfont=\sffamily\bfseries,% - notefont=\sffamily\bfseries,% - notebraces={}{},% - headpunct=,% - bodyfont=\sffamily,% - headformat=\color{props-color}Théorème~\NUMBER\hfill\NOTE\smallskip\linebreak,% - preheadhook=\vspace{\freespace}\begin{props-leftbar},% - postfoothook=\end{props-leftbar},% -]{better-thm} -\declaretheoremstyle[headfont=\sffamily\bfseries,% - notefont=\sffamily\bfseries,% - notebraces={}{},% - headpunct=,% - bodyfont=\sffamily,% - headformat=\color{corol-color}Corollaire~\NUMBER\hfill\NOTE\smallskip\linebreak,% - preheadhook=\vspace{\freespace}\begin{corol-leftbar},% - postfoothook=\end{corol-leftbar},% -]{better-corol} - -\declaretheorem[style=better-defn]{defn} -\declaretheorem[style=better-warn]{warn} -\declaretheorem[style=better-exemple]{exemple} -\declaretheorem[style=better-corol]{corol} -\declaretheorem[style=better-props, numberwithin=defn]{props} -\declaretheorem[style=better-thm, sibling=props]{thm} -\newtheorem*{lemme}{Lemme}%[subsection] -%\newtheorem{props}{Propriétés}[defn] - -\newenvironment{system}% -{\left\lbrace\begin{align}}% -{\end{align}\right.} - -\newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}} - -\usepackage{LobsterTwo} -\titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{} -\titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{} -\titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{} - -\newenvironment{lititle}% -{\vspace{7mm}\LobsterTwo \large}% -{\\} - -\renewenvironment{proof}{\par$\square$ \footnotesize\textit{Démonstration.}}{\begin{flushright}$\blacksquare$\end{flushright}\par} - -\title{Titre} -\author{William Hergès\thanks{CPES Science Henri-IV / PSL}} - -\begin{document} - \maketitle - \tableofcontents - \newpage - $0 -\end{document} -endsnippet - -snippet beg "begin{} / end{}" bA -\\begin{$1} - $0 -\\end{$1} -endsnippet - -priority 100 -snippet ... "ldots" iA -\ldots -endsnippet - -snippet table "Table environment" b -\begin{table}[${1:htpb}] - \centering - \caption{${2:caption}} - \label{tab:${3:label}} - \begin{tabular}{${5:c}} - $0${5/((?<=.)c|l|r)|./(?1: & )/g} - \end{tabular} -\end{table} -endsnippet - -snippet fig "Figure environment" b -\begin{figure}[${1:htpb}] - \centering - ${2:\includegraphics[width=0.8\textwidth]{$3}} - \caption{${4:$3}} - \label{fig:${5:${3/\W+/-/g}}} -\end{figure} -endsnippet - -snippet enum "Enumerate" bA -\begin{enumerate} - \item $0 -\end{enumerate} -endsnippet - -snippet item "Itemize" bA -\begin{itemize} - \item $0 -\end{itemize} -endsnippet - -snippet desc "Description" b -\begin{description} - \item[$1] $0 -\end{description} -endsnippet - -snippet pac "Package" b -\usepackage[${1:options}]{${2:package}}$0 -endsnippet - -snippet => "implies" Ai -\implies -endsnippet - -snippet =< "implied by" Ai -\impliedby -endsnippet - -context "math()" -snippet iff "iff" Ai -\iff -endsnippet - -snippet mk "Math" wA -$${1}$`!p -if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']: - snip.rv = ' ' -else: - snip.rv = '' -`$2 -endsnippet - -snippet dm "Math" wA -\[ -${1:${VISUAL}} -\] $0 -endsnippet - -snippet ali "Align" bA -\begin{align*} - ${1:${VISUAL}} -\end{align*} -endsnippet - - -#context "math()" -snippet / "Fraction" i -\\frac{$1}{$2}$0 -endsnippet - -snippet " ssi" "Si et seulement si" iA - si et seulement si -endsnippet -snippet -> "to" iA -\\to $0 -endsnippet - -snippet |> "Maps to" iA -\\longmapsto $0 -endsnippet - -context "math()" -snippet '((\d+)|(\d*)(\\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "symbol frac" wrA -\\frac{`!p snip.rv = match.group(1)`}{$1}$0 -endsnippet - -priority 1000 -context "math()" -snippet '^.*\)/' "() frac" wrA -`!p -stripped = match.string[:-1] -depth = 0 -i = len(stripped) - 1 -while True: - if stripped[i] == ')': depth += 1 - if stripped[i] == '(': depth -= 1 - if depth == 0: break; - i-=1 -snip.rv = stripped[0:i] + "\\frac{" + stripped[i+1:-1] + "}" -`{$1}$0 -endsnippet - -context "math()" -snippet '([A-Za-z])(\d)' "auto subscript" wrA -`!p snip.rv = match.group(1)`_`!p snip.rv = match.group(2)` -endsnippet - -context "math()" -snippet '([A-Za-z])_(\d|[a-z]|\\)' "auto subscript2" wrA -`!p snip.rv = match.group(1)`_{`!p snip.rv = match.group(2)`$0} -endsnippet - - -snippet sympy "sympyblock " w -sympy $1 sympy$0 -endsnippet - -priority 10000 -snippet 'sympy(.*)sympy' "sympy" wr -`!p -from sympy import * -x, y, z, t = symbols('x y z t') -k, m, n = symbols('k m n', integer=True) -f, g, h = symbols('f g h', cls=Function) -init_printing() -snip.rv = eval('latex(' + match.group(1).replace('\\', '').replace('^', '**').replace('{', '(').replace('}', ')') + ')') -` -endsnippet - -priority 1000 -snippet math "mathematicablock" w -math $1 math$0 -endsnippet - -priority 10000 -snippet 'math(.*)math' "math" wr -`!p -import subprocess -code = match.group(1) -code = 'ToString[' + code + ', TeXForm]' -snip.rv = subprocess.check_output(['wolframscript', '-code', code]) -` -endsnippet - -snippet == "equals" iA -&= $1 \\\\ -endsnippet - -snippet != "equals" iA -\neq -endsnippet - -context "math()" -snippet ceil "ceil" iA -\left\lceil $1 \right\rceil $0 -endsnippet - -context "math()" -snippet floor "floor" iA -\left\lfloor $1 \right\rfloor$0 -endsnippet - -snippet pmat "pmat" iA -\begin{pmatrix} $1 \end{pmatrix} $0 -endsnippet - -snippet bmat "bmat" iA -\begin{bmatrix} $1 \end{bmatrix} $0 -endsnippet - -snippet lr "left( right)" i -\left( ${1:${VISUAL}} \right) $0 -endsnippet - -snippet lr| "left| right|" i -\left| ${1:${VISUAL}} \right| $0 -endsnippet - -snippet lr{ "left\{ right\}" i -\left\\{ ${1:${VISUAL}} \right\\} $0 -endsnippet - -snippet lrb "left\{ right\}" i -\left\\{ ${1:${VISUAL}} \right\\} $0 -endsnippet - -snippet lr[ "left[ right]" i -\left[ ${1:${VISUAL}} \right] $0 -endsnippet - -snippet lra "leftangle rightangle" iA -\left<${1:${VISUAL}} \right>$0 -endsnippet - -context "math()" -snippet conj "conjugate" iA -\overline{$1}$0 -endsnippet - -snippet sum "sum" w -\sum_{${1:i=1}}^{${2:\infty}} ${3:a_n z^n} -endsnippet - -snippet taylor "taylor" w -\sum_{${1:k}=${2:0}}^{${3:\infty}} ${4:c_$1} (x-a)^$1 $0 -endsnippet - -snippet lim "limit" w -\lim_{${1:n} \to ${2:\infty}} -endsnippet - -snippet limsup "limsup" w -\limsup_{${1:n} \to ${2:\infty}} -endsnippet - -snippet limarr "lim arrow" w -\xrightarrow[${1:n} \to ${2:\infty}]{} -endsnippet - -snippet prod "product" w -\prod_{${1:n=${2:1}}}^{${3:\infty}} ${4:${VISUAL}} $0 -endsnippet - -snippet part "d/dx" w -\frac{\partial ${1:V}}{\partial ${2:x}} $0 -endsnippet - -context "math()" -snippet sq "\sqrt{}" iA -\sqrt{${1:${VISUAL}}} $0 -endsnippet - -context "math()" -snippet sr "^2" iA -^2 -endsnippet - -context "math()" -snippet cb "^3" iA -^3 -endsnippet - -snippet ^_ "to the ... power" iA -^{$1}$0 -endsnippet - -context "math()" -snippet rd "to the ... power" iA -^{($1)}$0 -endsnippet - -snippet __ "subscript" iA -_{$1}$0 -endsnippet - -snippet ooo "\infty" iA -\infty -endsnippet - -snippet rij "mrij" i -(${1:x}_${2:n})_{${3:$2}\\in${4:\\N}}$0 -endsnippet - -snippet <= "leq" iA -\leqslant -endsnippet - -snippet >= "geq" iA -\geqslant -endsnippet - -snippet EE "geq" iA -\exists -endsnippet - -snippet AA "forall" iA -\forall -endsnippet - -context "math()" -snippet xnn "xn" iA -x_{n} -endsnippet - -context "math()" -snippet ynn "yn" iA -y_{n} -endsnippet - - -context "math()" -snippet xii "xi" iA -x_{i} -endsnippet - -context "math()" -snippet yii "yi" iA -y_{i} -endsnippet - -context "math()" -snippet xjj "xj" iA -x_{j} -endsnippet - -context "math()" -snippet yjj "yj" iA -y_{j} -endsnippet - -context "math()" -snippet xp1 "x" iA -x_{n+1} -endsnippet - -context "math()" -snippet xmm "x" iA -x_{m} -endsnippet - -snippet R0+ "R0+" iA -\R_0^+ -endsnippet - -snippet plot "Plot" w -\begin{figure}[$1] - \centering - \begin{tikzpicture} - \begin{axis}[ - xmin= ${2:-10}, xmax= ${3:10}, - ymin= ${4:-10}, ymax = ${5:10}, - axis lines = middle, - ] - \addplot[domain=$2:$3, samples=${6:100}]{$7}; - \end{axis} - \end{tikzpicture} - \caption{$8} - \label{${9:$8}} -\end{figure} -endsnippet - -snippet nn "Tikz node" w -\node[$5] (${1/[^0-9a-zA-Z]//g}${2}) ${3:at (${4:0,0}) }{$${1}$}; -$0 -endsnippet - -snippet mcal "mathcal" iA -\mathcal{$1}$0 -endsnippet - -snippet mbb "mathbb" iA -\mathbb{$1}$0 -endsnippet - -snippet [bb "mathbb[X]" iA -\mathbb{$1}[${2:X}]$0 -endsnippet - -snippet (bb "mathbb(X)" iA -\mathbb{$1}(${2:X})$0 -endsnippet - -snippet mrm "mathrm" iA -\mathrm{$1}$0 -endsnippet - -context "math()" -snippet nabl "nabla" iA -\nabla -endsnippet - -context "math()" -snippet xx "cross" iA -\times -endsnippet - -priority 100 -snippet ** "cdot" iA -\cdot -endsnippet - -context "math()" -snippet norm "norm" iA -\|$1\|$0 -endsnippet - -priority 100 -context "math()" -snippet '(?<!\\)(sin|cos|arccot|cot|csc|ln|log|exp|star|perp)' "ln" rwA -\\`!p snip.rv = match.group(1)` -endsnippet - -priority 300 -context "math()" -snippet dint "integral" wA -\int_{${1:-\infty}}^{${2:\infty}} ${3:${VISUAL}} $0 -endsnippet - -priority 200 -context "math()" -snippet '(?<!\\)(arcsin|arccos|arctan|arccot|arccsc|arcsec|pi|zeta|int)' "ln" rwA -\\`!p snip.rv = match.group(1)` -endsnippet - - -priority 100 -context "math()" -snippet -> "to" iA -\to -endsnippet - -priority 200 -context "math()" -snippet <-> "leftrightarrow" iA -\leftrightarrow -endsnippet - -context "math()" -snippet !> "mapsto" iA -\mapsto -endsnippet - -context "math()" -snippet invs "inverse" iA -^{-1} -endsnippet - -context "math()" -snippet compl "complement" iA -^{c} -endsnippet - -context "math()" -snippet \\\ "setminus" iA -\setminus -endsnippet - -snippet >> ">>" iA -\gg -endsnippet - -snippet << "<<" iA -\ll -endsnippet - - -snippet ~~ "~" iA -\sim -endsnippet - -context "math()" -snippet set "set" wA -\\{$1\\} $0 -endsnippet - -context "math()" -snippet cc "subset" Ai -\subset -endsnippet - -snippet notin "not in " iA -\not\in -endsnippet - -context "math()" -snippet inn "in " iA -\in -endsnippet - -snippet NN "n" iA -\N -endsnippet - -snippet Nn "cap" iA -\cap -endsnippet - -snippet Uu "cup" iA -\cup -endsnippet - -snippet uuu "bigcup" iA -\bigcup_{${1:i \in ${2: I}}} $0 -endsnippet - -snippet nnn "bigcap" iA -\bigcap_{${1:i \in ${2: I}}} $0 -endsnippet - -snippet OO "emptyset" iA -\O -endsnippet - -snippet RR "real" iA -\R -endsnippet - -snippet QQ "Q" iA -\Q -endsnippet - -snippet ZZ "Z" iA -\Z -endsnippet - -snippet <! "normal" iA -\triangleleft -endsnippet - -snippet <> "hokje" iA -\diamond -endsnippet - - -context "math()" -snippet '(?<!i)sts' "text subscript" irA -_\text{$1} $0 -endsnippet - -context "math()" -snippet tt "text" iA -\text{$1}$0 -endsnippet - -context "math()" -snippet case "cases" wA -\begin{cases} - $1 -\end{cases} -endsnippet - -snippet bigfun "Big function" iA -\begin{align*} - $1: $2 &\longrightarrow $3 \\\\ - $4 &\longmapsto $1($4) = $0 -.\end{align*} -endsnippet - -snippet cvec "column vector" iA -\begin{pmatrix} ${1:x}_${2:1}\\\\ \vdots\\\\ $1_${2:n} \end{pmatrix} -endsnippet - -priority 10 -context "math()" -snippet "bar" "bar" riA -\overline{$1}$0 -endsnippet - -priority 100 -context "math()" -snippet "([a-zA-Z])bar" "bar" riA -\overline{`!p snip.rv=match.group(1)`} -endsnippet - -priority 10 -context "math()" -snippet "hat" "hat" riA -\hat{$1}$0 -endsnippet - -priority 100 -context "math()" -snippet "([a-zA-Z])hat" "hat" riA -\hat{`!p snip.rv=match.group(1)`} -endsnippet - -context "math()" -snippet "dot" "dot" riA -\dot{$1}$0 -endsnippet - -context "math()" -snippet "arw" "arw" riA -\overrightarrow{$1}$0 -endsnippet - -snippet box "Box" -`!p snip.rv = '┌' + '─' * (len(t[1]) + 2) + '┐'` -│ $1 │ -`!p snip.rv = '└' + '─' * (len(t[1]) + 2) + '┘'` -$0 -endsnippet - -snippet today "Date" -`date +%F` -endsnippet - -# vim:ft=snippets diff --git a/config/nvim/lua/keybindings.lua b/config/nvim/lua/keybindings.lua index 489f6d6..d8426d3 100644 --- a/config/nvim/lua/keybindings.lua +++ b/config/nvim/lua/keybindings.lua @@ -1,13 +1,26 @@ vim.keymap.set('n', '<A-Right>', '<cmd>tabnext<CR>') vim.keymap.set('n', '<A-Left>', '<cmd>tabprevious<CR>') + -- Neotree vim.keymap.set('n', '<A-&>', '<cmd>Neotree<CR>') -vim.api.nvim_create_user_command('Gs', 'Neotree float git_status git_base=main', {}) +--vim.api.nvim_create_user_command('Gs', 'Neotree float git_status git_base=main', {}) + -- LSP -vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>', opts) -vim.keymap.set('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', opts) -vim.keymap.set('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>', opts) -vim.keymap.set('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>', opts) -vim.keymap.set('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>', opts) -vim.keymap.set('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<cr>', opts) -vim.keymap.set('n', '<F6>', '<cmd>lua vim.lsp.buf.rename()<cr>', opts) +-- go to +vim.keymap.set('n', 'gd', vim.lsp.buf.definition) +vim.keymap.set('n', 'gD', vim.lsp.buf.declaration) +vim.keymap.set('n', 'gi', vim.lsp.buf.implementation) +vim.keymap.set('n', 'go', vim.lsp.buf.type_definition) +vim.keymap.set('n', 'gr', vim.lsp.buf.references) +-- display +vim.keymap.set('n', 'ds', vim.lsp.buf.signature_help) +vim.keymap.set('n', 'dh', vim.lsp.buf.hover) +-- utils +vim.keymap.set('n', '<F2>', vim.lsp.buf.rename) +vim.keymap.set('n', '<space><CR>', vim.lsp.buf.code_action) +vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI"}, { + callback = vim.lsp.buf.document_highlight +}) +vim.api.nvim_create_autocmd({"CursorMoved"}, { + callback = vim.lsp.buf.clear_references +}) diff --git a/config/nvim/lua/options.lua b/config/nvim/lua/options.lua index eb4421e..a759cd5 100644 --- a/config/nvim/lua/options.lua +++ b/config/nvim/lua/options.lua @@ -27,3 +27,13 @@ vim.filetype.add({ heex = 'eelixir' } }) +vim.filetype.add({ + extension = { + yrl = 'erlang' + } +}) +vim.filetype.add({ + extension = { + xrl = 'erlang' + } +}) diff --git a/config/nvim/lua/plugins/blink.lua b/config/nvim/lua/plugins/blink.lua index b69b537..4603999 100644 --- a/config/nvim/lua/plugins/blink.lua +++ b/config/nvim/lua/plugins/blink.lua @@ -2,74 +2,53 @@ return { { "saghen/blink.cmp", -- optional: provides snippets for the snippet source - dependencies = { "rafamadriz/friendly-snippets" }, + -- dependencies = { "rafamadriz/friendly-snippets" }, - -- Use a release tag to download pre-built binaries version = "*", - -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust - -- build = 'cargo build --release', - -- If you use nix, you can build from source using the latest nightly rust with: - -- build = 'nix run .#build-plugin', - opts = { - -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) - -- 'super-tab' for mappings similar to VSCode (tab to accept) - -- 'enter' for enter to accept - -- 'none' for no mappings - -- - -- All presets have the following mappings: - -- C-space: Open menu or open docs if already open - -- C-n/C-p or Up/Down: Select next/previous item - -- C-e: Hide menu - -- C-k: Toggle signature help (if signature.enabled = true) - -- - -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { - -- Each keymap may be a list of commands and/or functions preset = "enter", -- Select completions ["<Up>"] = { "select_prev", "fallback" }, ["<Down>"] = { "select_next", "fallback" }, ["<Tab>"] = { "select_next", "fallback" }, ["<S-Tab>"] = { "select_prev", "fallback" }, + ["<CR-space>"] = { "show", "hide", "fallback" }, -- Scroll documentation - ["<C-b>"] = { "scroll_documentation_up", "fallback" }, - ["<C-f>"] = { "scroll_documentation_down", "fallback" }, + ["<S-Up>"] = { "scroll_documentation_up", "fallback" }, + ["<S-Down>"] = { "scroll_documentation_down", "fallback" }, -- Show/hide signature ["<C-k>"] = { "show_signature", "hide_signature", "fallback" }, }, appearance = { - -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- Adjusts spacing to ensure icons are aligned nerd_font_variant = "mono", }, sources = { - -- `lsp`, `buffer`, `snippets`, `path`, and `omni` are built-in - -- so you don't need to define them in `sources.providers` default = { "lsp", "path", "snippets", "buffer" }, - - -- Sources are configured via the sources.providers table }, - -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance - -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, - -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` - -- - -- See the fuzzy documentation for more information fuzzy = { implementation = "prefer_rust_with_warning" }, completion = { -- The keyword should only match against the text before keyword = { range = "prefix" }, + list = { + selection = { preselect = true, auto_insert = false } + }, + ghost_text = { enabled = true }, menu = { + auto_show = false, -- Use treesitter to highlight the label text for the given list of sources draw = { treesitter = { "lsp" }, }, }, -- Show completions after typing a trigger character, defined by the source - trigger = { show_on_trigger_character = true }, + trigger = { + show_on_trigger_character = true + }, documentation = { -- Show documentation automatically auto_show = true, diff --git a/config/nvim/lua/plugins/ultisnips.lua b/config/nvim/lua/plugins/ultisnips.lua deleted file mode 100644 index a71c987..0000000 --- a/config/nvim/lua/plugins/ultisnips.lua +++ /dev/null @@ -1,11 +0,0 @@ -return { - { - "SirVer/ultisnips", - init = function() - -- vim.g.UltiSnipsSnippetDirectories = { "~/.config/nvim/UltiSnips" } - vim.g.UltiSnipsExpandTrigger = '<C-a>' - vim.g.UltiSnipsJumpForwardTrigger = '<tab>' - vim.g.UltiSnipsJumpBackwardTrigger = '<s-tab>' - end, - } -} |
