Compare commits
158 Commits
nvim_easyc
...
master
Author | SHA1 | Date |
---|---|---|
|
3db17f9849 | |
|
8564daf4b5 | |
|
f19f71c182 | |
|
084fff8e1a | |
|
82226b4f78 | |
|
c4c65c4e65 | |
|
8ecfde7ce1 | |
|
437ce3ff2e | |
|
4ad4a777f6 | |
|
7daedc0b31 | |
|
5ee0540a2e | |
|
41ec16380b | |
|
d79f1fd6d4 | |
|
742e6f614a | |
|
730ec3b4bd | |
|
1234f9bd4c | |
|
12a3293fff | |
|
e26dfea84f | |
|
2d0a74ed82 | |
|
8e09bfd6b7 | |
|
9da04ad7e8 | |
|
c91101470c | |
|
b11d36ba16 | |
|
67eaafaee9 | |
|
a02cf6a902 | |
|
ae06236c2c | |
|
339d5b1197 | |
|
06c098c194 | |
|
886d434849 | |
|
cca29ca695 | |
|
f4909335c1 | |
|
c8be7d19a7 | |
|
443a0cb897 | |
|
5b1d0d66de | |
|
59dc3784af | |
|
8cee1dc880 | |
|
af28c12ea7 | |
|
4aa297662c | |
|
fb0655896c | |
|
298e80f221 | |
|
35da498b9b | |
|
2836ff63e3 | |
|
6e48879ffa | |
|
e5aa6d7012 | |
|
d63a431242 | |
|
deda105b50 | |
|
cfa581bf05 | |
|
c0ad357563 | |
|
3217a4456c | |
|
4357a36235 | |
|
01359aca3c | |
|
2d7c2974ef | |
|
02c752a943 | |
|
8cb88ec054 | |
|
5f931de4cc | |
|
af4b80906f | |
|
cc1a7c9311 | |
|
99e59d66e3 | |
|
f9ae3dfe99 | |
|
c2705d1f1e | |
|
739d439946 | |
|
10ca92d206 | |
|
561cdf5d2d | |
|
b8c5c86010 | |
|
ad4c99c1f8 | |
|
7452ee9b06 | |
|
d2c68f99ab | |
|
085ff836c3 | |
|
55e22fd3f7 | |
|
963e7a1f97 | |
|
10c2b99fb8 | |
|
aa1d40613d | |
|
fdd52c7471 | |
|
04f7b17fd5 | |
|
c3f37295e6 | |
|
8233320d90 | |
|
3348f2e49b | |
|
2135d24022 | |
|
b5a63692af | |
|
08394c8b54 | |
|
be445dfcec | |
|
566763638d | |
|
6734c00e68 | |
|
58a2717f6e | |
|
e15b921187 | |
|
db450d73a0 | |
|
06cbad6b53 | |
|
ea3acd437a | |
|
04369588f6 | |
|
e1a5e7f825 | |
|
ea0e244f05 | |
|
577fd649e3 | |
|
61fb308e60 | |
|
7f8f120b7b | |
|
04eadef1d4 | |
|
ab043c5c1c | |
|
2e0d35c2d9 | |
|
299cdc7267 | |
|
546cc3e437 | |
|
f0b346271c | |
|
8026306999 | |
|
325f41372a | |
|
34d96fcddc | |
|
e2836f519f | |
|
1d83337da8 | |
|
a1cffcf7e9 | |
|
859311d0ee | |
|
9c504e284f | |
|
e1711a1180 | |
|
94457aae68 | |
|
7e89acf09f | |
|
39b9d351c0 | |
|
f33b495d12 | |
|
74ce5c7cde | |
|
3661bb6693 | |
|
4c4a6443b9 | |
|
1b9a7264de | |
|
682f512251 | |
|
bd368117fe | |
|
2143b6d5a1 | |
|
a3983ae9c5 | |
|
290fcc1aff | |
|
e539bb663d | |
|
5f39958f59 | |
|
b2cbeb41c1 | |
|
d42f1f53e8 | |
|
def3c6b531 | |
|
1d7c562add | |
|
39381d1da9 | |
|
f4b99df515 | |
|
471e420829 | |
|
e15fc0dfa7 | |
|
55c7a8d1e2 | |
|
e4812f748b | |
|
a7e387067a | |
|
4fd990b5fd | |
|
463ded36cd | |
|
187b9de47a | |
|
d13d0ec0e8 | |
|
30fdc90545 | |
|
bdab32c01a | |
|
abee013697 | |
|
29f798abc7 | |
|
49dfe769ed | |
|
23d1e0deb1 | |
|
4d3800a027 | |
|
ce70d6f9b7 | |
|
b2a762ab4d | |
|
e20feca786 | |
|
0db71c6f62 | |
|
744865e965 | |
|
6b13d4c6b4 | |
|
8eb3955fd6 | |
|
54991cf3d9 | |
|
bb886d3fe6 | |
|
1ceb2e0e4a | |
|
77bba8c263 | |
|
84d14e8884 |
|
@ -0,0 +1,29 @@
|
||||||
|
name: Test Neovim config on push
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-20.04]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install required packages
|
||||||
|
run: |
|
||||||
|
apt-get update -qy
|
||||||
|
apt-get install -y git
|
||||||
|
apt-get install -y neovim
|
||||||
|
apt-get install -y python3-neovim
|
||||||
|
|
||||||
|
- name: Clone neovim repository
|
||||||
|
run: |
|
||||||
|
git clone https://git.nickr.eu/yannickreiss/nvim
|
||||||
|
|
||||||
|
- name: Syntax check the configuration
|
||||||
|
run: |
|
||||||
|
cd nvim && nvim -l init.lua
|
|
@ -1,2 +1,6 @@
|
||||||
lastSession.vim
|
lastSession.vim
|
||||||
plugin/
|
plugin/
|
||||||
|
spell/
|
||||||
|
./mail_password
|
||||||
|
./lua/irc.lua
|
||||||
|
./lazy-lock.json
|
||||||
|
|
|
@ -1,52 +1,3 @@
|
||||||
snippet textio "Insert Textio import" b
|
|
||||||
with Ada.Text_IO;$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet procedure "insert procedure" b
|
|
||||||
-- @name $1
|
|
||||||
-- @return
|
|
||||||
`!p
|
|
||||||
snip.rv = ""
|
|
||||||
if t[2].startswith("l"):
|
|
||||||
parameters = []
|
|
||||||
else:
|
|
||||||
parameters = t[2].replace("\n", "").split(";");
|
|
||||||
for parameter in parameters:
|
|
||||||
if not parameter == "" and not parameter.startswith("typ"):
|
|
||||||
paramless = parameter.replace("\t", "")
|
|
||||||
snip.rv += f"-- @variable {paramless}\n"
|
|
||||||
`-- @description $3
|
|
||||||
procedure ${1:Name} is
|
|
||||||
$2
|
|
||||||
begin
|
|
||||||
$4
|
|
||||||
end $1;$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet function "insert function" b
|
|
||||||
-- @name $1
|
|
||||||
-- @return $3
|
|
||||||
-- @param $2
|
|
||||||
`!p
|
|
||||||
snip.rv = ""
|
|
||||||
if t[4].startswith("l"):
|
|
||||||
parameters = []
|
|
||||||
else:
|
|
||||||
parameters = t[4].replace("\n", "").split(";")
|
|
||||||
for parameter in parameters:
|
|
||||||
if not parameter.startswith("typ") and not parameter == "":
|
|
||||||
paramless = parameter.replace("\t", "")
|
|
||||||
snip.rv += f"-- @variable {paramless}\n"
|
|
||||||
`-- @description $5
|
|
||||||
function ${1:Name}($2`!p if (t[2] == ""):
|
|
||||||
t[2] = "a, b: Integer"`) return ${3:Integer} is
|
|
||||||
$4
|
|
||||||
begin
|
|
||||||
$7
|
|
||||||
return ${6:`!p snip.rv = t[3]`};
|
|
||||||
end $1;$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
global !p
|
global !p
|
||||||
def complete(t, opts):
|
def complete(t, opts):
|
||||||
if t:
|
if t:
|
||||||
|
@ -56,56 +7,188 @@ def complete(t, opts):
|
||||||
if len(opts) > 5:
|
if len(opts) > 5:
|
||||||
opts = opts[0:5]
|
opts = opts[0:5]
|
||||||
return "(" + "|".join(opts) + ")"
|
return "(" + "|".join(opts) + ")"
|
||||||
|
|
||||||
|
def find_candidate(tabstop, search_type):
|
||||||
|
# Split up the tabstop on semicolons
|
||||||
|
items = tabstop.replace("\n", "").replace(" ", "").split(";")
|
||||||
|
|
||||||
|
# find multiple same time assignments (a, b : Integer)
|
||||||
|
single_items = []
|
||||||
|
for item in items:
|
||||||
|
if (len(item.split(",")) > 1) and (len(item.split(":")) > 1):
|
||||||
|
variables = item.split(":")[0]
|
||||||
|
multi_type = item.split(":")[1]
|
||||||
|
for variable in variables.split(","):
|
||||||
|
single_items.append(f"{variable}:{multi_type}")
|
||||||
|
else:
|
||||||
|
single_items.append(item)
|
||||||
|
for candidate in single_items:
|
||||||
|
if len(candidate.split(":")) > 1:
|
||||||
|
name = candidate.split(":")[0]
|
||||||
|
candidate_type = candidate.split(":")[1]
|
||||||
|
else:
|
||||||
|
name = "None"
|
||||||
|
candidate_type = ""
|
||||||
|
|
||||||
|
if candidate_type == search_type:
|
||||||
|
return name
|
||||||
|
return "None"
|
||||||
endglobal
|
endglobal
|
||||||
|
|
||||||
snippet if "If condition" b
|
snippet helloworld "Hello world example to test features" b
|
||||||
if $1 then
|
-- `!p snip.rv = fn`
|
||||||
$2
|
-- Created on: `date`
|
||||||
$3`!p snip.rv = complete(t[3], ["elsif", "else", "end if;"])` ${4:`!p if t[3] == "elsif":
|
-- Author(s): Yannick Reiss <yannick.reiss@nickr.eu>
|
||||||
snip.rv = "condition"
|
-- Content: Hello world example
|
||||||
|
with Ada.Text_IO; use Ada.Text_IO;
|
||||||
|
|
||||||
|
-- @name ${1:`!p snip.rv = fn[0].upper() + fn[1:].split('.')[0]`}
|
||||||
|
-- @return
|
||||||
|
-- @description Function printing hello world.
|
||||||
|
procedure $1 is
|
||||||
|
|
||||||
|
begin
|
||||||
|
${2:Put_Line ("Hello world!");}
|
||||||
|
end $1;$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet docstring "Document String with most important information" b
|
||||||
|
-- `!p snip.rv = fn`
|
||||||
|
-- Created on: `date`
|
||||||
|
-- Author(s): ${1:Yannick Reiß}
|
||||||
|
-- Description: ${2:`!p snip.rv = fn.split('.')[0]`}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet procedure "insert procedure" b
|
||||||
|
-- @name $1
|
||||||
|
-- @return
|
||||||
|
`!p
|
||||||
|
snip.rv = ""
|
||||||
|
if t[2].startswith("l"):
|
||||||
|
parameters = []
|
||||||
else:
|
else:
|
||||||
snip.rv = ""`} `!p
|
parameters = t[2].replace("; ", ";").replace('in ', '').replace('out ', '')
|
||||||
if t[3] == "elsif":
|
parameters = parameters.replace(' ', '').split(";");
|
||||||
snip.rv = "then"`
|
parameter_list = []
|
||||||
|
for parameter in parameters:
|
||||||
|
if len(parameter.split(',')) == 1:
|
||||||
|
parameter_list.append(parameter)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
list_type = parameter.split(':')[1]
|
||||||
|
except:
|
||||||
|
list_type = "???"
|
||||||
|
list_parameters = parameter.split(':')[0].replace(' ', '').split(',')
|
||||||
|
for sub_parameter in list_parameters:
|
||||||
|
parameter_list.append(f"{sub_parameter}\t:\t{list_type}")
|
||||||
|
for parameter in parameter_list:
|
||||||
|
if not parameter == "" and not parameter.startswith("typ"):
|
||||||
|
parameterless = parameter.replace("\t", "")
|
||||||
|
snip.rv += f"-- @parameter {parameterless}\n"
|
||||||
|
``!p
|
||||||
|
snip.rv = ""
|
||||||
|
if t[3].startswith("l"):
|
||||||
|
variables = []
|
||||||
|
else:
|
||||||
|
variables = t[3].replace("\n", "").split(";");
|
||||||
|
for variable in variables:
|
||||||
|
if not variable == "" and not variable.startswith("typ"):
|
||||||
|
variableless = variable.replace("\t", "").replace (" ", "")
|
||||||
|
snip.rv += f"\t-- @variable {variableless}\n"
|
||||||
|
`-- @description $4
|
||||||
|
procedure ${1:`!p snip.rv = fn.split('.')[0].capitalize()`} `!p snip.rv = "" if t[2] == "" else "("`${2:N : Natural}`!p snip.rv = "" if t[2] == "" else ")"` is
|
||||||
|
$3
|
||||||
|
begin
|
||||||
$5
|
$5
|
||||||
`!p if t[3] == "end if;":
|
end $1;$0
|
||||||
snip.rv = ""
|
|
||||||
else:
|
|
||||||
snip.rv = "end if;"`$0
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet for "For loop" b
|
snippet function "insert function" b
|
||||||
for ${1:i} ${2:in ${3:1}..${4:10}} loop
|
-- @name $1
|
||||||
$5
|
-- @return $3
|
||||||
end loop;$0
|
`!p
|
||||||
endsnippet
|
snip.rv = ""
|
||||||
|
if t[2].startswith("l"):
|
||||||
snippet while "While loop" b
|
parameters = []
|
||||||
while ${1:Condition} loop
|
|
||||||
$2
|
|
||||||
end loop;$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet let "Create new Variable" bA
|
|
||||||
${1:letName}`!p if not t[1].startswith("let"):
|
|
||||||
t[1] = t[1].capitalize()``!p snip.rv = "\t:\t"`${2}`!p if t[2].startswith("!"):
|
|
||||||
snip.rv = ""
|
|
||||||
else:
|
else:
|
||||||
snip.rv = complete(t[2], ["Integer", "Boolean", "Float", "Natural", "Positive", "Negative", "Long_Float", "String"])
|
parameters = t[2].replace("; ", ";").replace('in ', '').replace('out ', '')
|
||||||
``!p if t[3] == "":
|
parameters = parameters.replace(' ', '').split(";");
|
||||||
snip.rv = ""
|
parameter_list = []
|
||||||
|
for parameter in parameters:
|
||||||
|
if len(parameter.split(',')) == 1:
|
||||||
|
parameter_list.append(parameter)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
list_type = parameter.split(':')[1]
|
||||||
|
except:
|
||||||
|
list_type = "???"
|
||||||
|
list_parameters = parameter.split(':')[0].replace(' ', '').split(',')
|
||||||
|
for sub_parameter in list_parameters:
|
||||||
|
parameter_list.append(f"{sub_parameter}\t:\t{list_type}")
|
||||||
|
for parameter in parameter_list:
|
||||||
|
if not parameter == "" and not parameter.startswith("typ"):
|
||||||
|
parameterless = parameter.replace("\t", "")
|
||||||
|
snip.rv += f"\t-- @parameter {parameterless}\n"
|
||||||
|
``!p
|
||||||
|
snip.rv = ""
|
||||||
|
if t[4].startswith("l"):
|
||||||
|
variables = []
|
||||||
else:
|
else:
|
||||||
snip.rv = " := "
|
variables = t[4].replace("\n", "").split(";");
|
||||||
`$3;
|
for variable in variables:
|
||||||
|
if not variable == "" and not variable.startswith("typ") and not variable.startswith("--"):
|
||||||
|
variableless = variable.replace("\t", "").replace (" ", "")
|
||||||
|
snip.rv += f"\t-- @variable {variableless}\n"
|
||||||
|
` -- @description $5
|
||||||
|
function ${1:`!p snip.rv = fn.split('.')[0].capitalize()`} `!p snip.rv = "" if t[2] == "" else "("`${2:N : Natural}`!p snip.rv = "" if t[2] == "" else ")"` return ${3:Natural} is
|
||||||
|
$4
|
||||||
|
begin
|
||||||
|
$6
|
||||||
|
|
||||||
|
return `!p
|
||||||
|
candidate = find_candidate(t[4], t[3])
|
||||||
|
if candidate == "None":
|
||||||
|
candidate = find_candidate(t[2], t[3])
|
||||||
|
if candidate == "None":
|
||||||
|
candidate = t[1]
|
||||||
|
snip.rv = candidate
|
||||||
|
`;
|
||||||
|
end $1;$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet type "declare a new type" bA
|
snippet type "declare a new type" bA
|
||||||
type ${1:TypeName} is ${2:array($3..$4)} of ${5:Integer};$0
|
type ${1:TypeName} is ${2:array($3..$4) of }`!p
|
||||||
|
if t[2] == "record":
|
||||||
|
snip.rv = "\n\t\t"
|
||||||
|
else:
|
||||||
|
snip.rv = ""`$5`!p
|
||||||
|
if t[2] == "record":
|
||||||
|
snip.rv = "\n\tend record"
|
||||||
|
else:
|
||||||
|
snip.rv = ""
|
||||||
|
`;$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet docstring "Document String with most important infor" b
|
snippet project "Project" b
|
||||||
-- `!p snip.rv = fn`
|
project ${1:Default} is
|
||||||
-- Created on: `date`
|
for Source_Dirs use ("${2:src}");
|
||||||
-- Author(s): ${1:Yannick Reiß}
|
for Object_Dir use "${3:obj}";
|
||||||
-- Content: ${2: Function `!p snip.rv = fn.split('.')[0]`}
|
for Exec_Dir use "${4:bin}";
|
||||||
|
for Main use ("${5:main.adb}");
|
||||||
|
for Languages use ("Ada");
|
||||||
|
end $1;
|
||||||
|
-- Create dir? (y/): ${6:no}`!p
|
||||||
|
from os import system
|
||||||
|
if t[6] == "y":
|
||||||
|
system(f"mkdir -p {t[2]}")
|
||||||
|
system(f"mkdir -p {t[3]}")
|
||||||
|
system(f"mkdir -p {t[4]}")`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet package "Create package configuration" b
|
||||||
|
package ${1:body }${2:`!p package_name = fn.split('.')[0]
|
||||||
|
snip.rv = package_name[0].upper() + package_name[1:]`} is
|
||||||
|
$0
|
||||||
|
end $2;
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -1,21 +1,55 @@
|
||||||
snippet cred "My private Credentials"
|
|
||||||
Yannick Reiss <yannick.reiss@nickr.eu>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet solve "Solve a python equation"
|
|
||||||
${1:1*1}`!p rv = ""
|
|
||||||
from math import *
|
|
||||||
try:
|
|
||||||
rv = eval(t[1])
|
|
||||||
except:
|
|
||||||
rv = "?"
|
|
||||||
snip.rv = f" = {rv}"`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet dd "Date and Time" i
|
snippet dd "Date and Time" i
|
||||||
`date`
|
`date`
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet credhsrm "Credentials HSRM"
|
snippet crednick "My private Credentials"
|
||||||
Yannick Reiß (yareissx/yreis001) <yannick.reiss@student.hs-rm.de>
|
Yannick Reiss <yannick.reiss@nickr.eu>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet credhsrm "Credentials HSRM"
|
||||||
|
Yannick Reiß <yannick.reiss@student.hs-rm.de>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
global !p
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
def get_datetime():
|
||||||
|
now = datetime.now()
|
||||||
|
now_as_list = [
|
||||||
|
now.strftime("%d"),
|
||||||
|
now.strftime("%m"),
|
||||||
|
now.strftime("%Y"),
|
||||||
|
now.strftime("%H"),
|
||||||
|
now.strftime("%M")
|
||||||
|
]
|
||||||
|
return now_as_list
|
||||||
|
|
||||||
|
def complete(t, opts):
|
||||||
|
if t:
|
||||||
|
opts = [ m[len(t):] for m in opts if m.startswith(t) ]
|
||||||
|
if len(opts) == 1:
|
||||||
|
return opts[0]
|
||||||
|
else:
|
||||||
|
return "(" + '|'.join(opts) + ")"
|
||||||
|
|
||||||
|
endglobal
|
||||||
|
|
||||||
|
snippet mail "Template for a new delayed Mail" b
|
||||||
|
time:${1:`!p snip.rv = get_datetime()[0]`}.${2:`!p snip.rv = get_datetime()[1]`}.${3:`!p snip.rv = get_datetime()[2]`} ${4:`!p snip.rv = get_datetime()[3]`}:${5:`!p snip.rv = get_datetime()[4]`}
|
||||||
|
from:$6`!p snip.rv = complete(t[6], ['yannick.reiss@nickr.eu', 'schnick@nickr.eu'])`
|
||||||
|
to:${7:schnick@nickr.eu}
|
||||||
|
subject:${8:Subject}
|
||||||
|
|
||||||
|
${9:Message}
|
||||||
|
|
||||||
|
${10:`cat ~/.signature.txt`}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet crednina "My true credentials"
|
||||||
|
Nina Chloé Kassandra Reiß <nina.reiss@nickr.eu>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet pwd "Print the current working directory"
|
||||||
|
`echo $(pwd)`
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
snippet string "Assembler string definition"
|
snippet string86 "Assembler string definition"
|
||||||
${1:Name} db ${2:"Hello World!"} ; string $1 = $2
|
${1:Name} db ${2:"Hello World!"} ; string $1 = $2
|
||||||
len_$1 equ $ - $1 ; length of string $1
|
len_$1 equ $ - $1 ; length of string $1
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet \n "Zeilenumbruch" A
|
snippet write86 "write sys_call"
|
||||||
", 0x0a, "
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet write "write sys_call"
|
|
||||||
mov eax, 4 ; write sys_call
|
mov eax, 4 ; write sys_call
|
||||||
mov ebx, 1 ; write to stdout
|
mov ebx, 1 ; write to stdout
|
||||||
mov ecx, ${1:string} ; string to write
|
mov ecx, ${1:string} ; string to write
|
||||||
|
@ -17,7 +13,7 @@ int 0x80 ; system interrupt
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet exit "exit sys_call"
|
snippet exit86 "exit sys_call"
|
||||||
mov eax, 1 ; exit sys_call
|
mov eax, 1 ; exit sys_call
|
||||||
mov ebx, ${1:0} ; exit Code
|
mov ebx, ${1:0} ; exit Code
|
||||||
int 0x80 ; system interrupt$0
|
int 0x80 ; system interrupt$0
|
||||||
|
@ -40,33 +36,7 @@ $1:
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet read "read sys call"
|
snippet functionGCC "GCC conform function implementation" b
|
||||||
mov eax, 3 ; read sys call
|
|
||||||
mov ebx, 2 ; stdin file descriptor
|
|
||||||
mov ecx, ${1: variable} ; read input value in $1
|
|
||||||
mov edx, ${2:5} ; read $2 bytes of data
|
|
||||||
int 0x80 ; system interrupt
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet aprstore "Store all purpose register on stack"
|
|
||||||
; store ap-register
|
|
||||||
push eax
|
|
||||||
push ebx
|
|
||||||
push ecx
|
|
||||||
push edx
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet aprload "Load all purpose register from stack"
|
|
||||||
; load ap-register
|
|
||||||
pop eax
|
|
||||||
pop ebx
|
|
||||||
pop ecx
|
|
||||||
pop edx
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet gcc_function "GCC conform function implementation" b
|
|
||||||
$1:
|
$1:
|
||||||
push %ebp
|
push %ebp
|
||||||
mov %esp, %ebp
|
mov %esp, %ebp
|
||||||
|
|
|
@ -18,9 +18,9 @@ endsnippet
|
||||||
|
|
||||||
snippet article "Add article reference" b
|
snippet article "Add article reference" b
|
||||||
@article{${1:ref_name},
|
@article{${1:ref_name},
|
||||||
title={${2:Titel}},
|
title = {${2:Titel}},
|
||||||
author={${3:Autor}},
|
author = {${3:Autor}},
|
||||||
journal={${4:Journal}},`!p
|
journal = {${4:Journal}},`!p
|
||||||
if t[5] != "":
|
if t[5] != "":
|
||||||
snip.rv = "\n\tvolume\t= {"
|
snip.rv = "\n\tvolume\t= {"
|
||||||
else:
|
else:
|
||||||
|
@ -45,8 +45,9 @@ if t[7] != "":
|
||||||
snip.rv = "},"
|
snip.rv = "},"
|
||||||
else:
|
else:
|
||||||
snip.rv = ""`
|
snip.rv = ""`
|
||||||
year={${8:2023}},
|
year = {${8:2023}},
|
||||||
publisher={${9:Verlag}}
|
doi = {${9:DOI_NUM}}
|
||||||
|
publisher = {${10:Verlag}}
|
||||||
}
|
}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -1,10 +1,32 @@
|
||||||
snippet hello "Hello World"
|
extends cpp
|
||||||
Hallo
|
|
||||||
|
priority 200
|
||||||
|
|
||||||
|
global !p
|
||||||
|
def complete(t, opts):
|
||||||
|
if t:
|
||||||
|
opts = [m[len(t):] for m in opts if m.startswith(t)]
|
||||||
|
if len(opts) == 1:
|
||||||
|
return opts[0]
|
||||||
|
return '(' + '|'.join(opts) + ')'
|
||||||
|
endglobal
|
||||||
|
|
||||||
|
snippet helloworld "Hello World"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(void){(void)printf("Hello World!\n");return 0;}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet for "For-loop head"
|
snippet for "For-loop head"
|
||||||
for (${1:int i} = ${2:0}; ${3:i}; ${4:--i}) {
|
for (${1:int ${2:i}} = ${3:0}; ${4:$2 < $5}; ${6:$2++}) {
|
||||||
$5
|
$7
|
||||||
|
}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet while "while loop head"
|
||||||
|
for (;$1;) {
|
||||||
|
$2
|
||||||
}
|
}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
@ -26,27 +48,6 @@ else:
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet "(\w+)->fun" "Struct function" r
|
|
||||||
${1:int} ${2:Name} (`!p snip.rv = match.group(1)`* self, ${4:void}) {
|
|
||||||
`!p
|
|
||||||
if t[1].replace('static ', '') != "void":
|
|
||||||
snip.rv = f"{t[1].replace('static ', '')} rv = 0;"
|
|
||||||
else:
|
|
||||||
snip.rv = ""`
|
|
||||||
$5
|
|
||||||
`!p
|
|
||||||
if t[1].replace('static ', '') != "void":
|
|
||||||
snip.rv = f"return rv;"
|
|
||||||
else:
|
|
||||||
snip.rv = ""`
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "self.(\w+)" "Struct call" r
|
|
||||||
`!p snip.rv = match.group(1)`(self$1)$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pfun "prototype for function" bA
|
snippet pfun "prototype for function" bA
|
||||||
/**
|
/**
|
||||||
* @name $2
|
* @name $2
|
||||||
|
@ -77,50 +78,33 @@ for param in params:
|
||||||
snip.rv = rval`
|
snip.rv = rval`
|
||||||
*/
|
*/
|
||||||
${1:int} ${2:MyFunc} (${3:void}) {
|
${1:int} ${2:MyFunc} (${3:void}) {
|
||||||
|
/* Returns ${5:void} */
|
||||||
`!p
|
`!p
|
||||||
if t[1].replace('static ', '') != "void":
|
if t[1].replace('static ', '') != "void":
|
||||||
snip.rv = f"{t[1].replace('static ', '')} rv = 0;"
|
snip.rv = f"{t[1].replace('static ', '')} {t[5]} = 0;"
|
||||||
else:
|
else:
|
||||||
snip.rv = ""`
|
snip.rv = ""`
|
||||||
$5
|
$6
|
||||||
`!p
|
`!p
|
||||||
if t[1].replace('static ', '') != "void":
|
if t[1].replace('static ', '') != "void":
|
||||||
snip.rv = f"return rv;"
|
snip.rv = f"return {t[5]};"
|
||||||
else:
|
else:
|
||||||
snip.rv = ""`
|
snip.rv = ""`
|
||||||
}
|
}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet while "while loop head"
|
|
||||||
for (;$1;) {
|
|
||||||
$2
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "(\w+) = malloc" "Automativ malloc error implementation" rA
|
snippet "(\w+) = malloc" "Automativ malloc error implementation" rA
|
||||||
/* Allocate memory for `!p snip.rv = match.group(1)` */
|
/* Allocate memory for `!p snip.rv = match.group(1)` */
|
||||||
`!p snip.rv = match.group(1)` = ($1*)malloc(sizeof(${1:int}) * $2);
|
`!p snip.rv = match.group(1)` = ($1*)malloc(sizeof(${1:int}) * $2);
|
||||||
if (!`!p snip.rv = match.group(1)`) {
|
if (!`!p snip.rv = match.group(1)`) {
|
||||||
/* Error */
|
/* Error */
|
||||||
(void)printf("malloc error on memory allocation of: `!p snip.rv = match.group(1)`!\n");
|
(void)printf("ERROR: malloc error on memory allocation of: `!p snip.rv = match.group(1)`!\n");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet "(\w+) = open" "Automatic open error implementation" rA
|
|
||||||
/* create descriptor `!p snip.rv = match.group(1)` for file $1 */
|
|
||||||
`!p snip.rv = match.group(1)` = open(${1:"Filename"}, ${2:"MODE"});
|
|
||||||
if (-1 == `!p snip.rv = match.group(1)`) {
|
|
||||||
/* Error */
|
|
||||||
perror(${4:"open error"});
|
|
||||||
${5:exit(EXIT_FAILURE);}
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet swap "Swap two integer or numerical variables"
|
snippet swap "Swap two integer or numerical variables"
|
||||||
/* Swap Variables $1 and $2 */
|
/* Swap Variables $1 and $2 */
|
||||||
${1:Var1} = $1 + ${2:Var2};
|
${1:Var1} = $1 + ${2:Var2};
|
||||||
|
@ -129,27 +113,6 @@ $1 = $1 - $2;
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet cast "adds cast" i
|
|
||||||
(${1:void})$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
global !p
|
|
||||||
def complete(t, opts):
|
|
||||||
if t:
|
|
||||||
opts = [m[len(t):] for m in opts if m.startswith(t)]
|
|
||||||
if len(opts) == 1:
|
|
||||||
return opts[0]
|
|
||||||
return '(' + '|'.join(opts) + ')'
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
snippet printf "Cast printf result to 'void' if heturn value is unneeded" bA
|
|
||||||
(void)printf("$1"`!p
|
|
||||||
if "%" in t[1]:
|
|
||||||
snip.rv = ", "
|
|
||||||
else:
|
|
||||||
snip.rv = ""`$2);$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet defstruct "define a new type with a struct" A
|
snippet defstruct "define a new type with a struct" A
|
||||||
/* define struct $1 ${2:Explaination} */
|
/* define struct $1 ${2:Explaination} */
|
||||||
typedef struct $1 $1;
|
typedef struct $1 $1;
|
||||||
|
@ -158,10 +121,11 @@ struct $1 {
|
||||||
};
|
};
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet docomment "Meta Comment for Documenation" A
|
snippet docstring "Meta Comment for Documenation" A
|
||||||
/*
|
/*
|
||||||
* Filename: `!p snip.rv = fn`
|
* Filename: `!p snip.rv = fn`
|
||||||
* Author: ${1:Yannick Reiss}
|
* Author: ${1:Yannick Reiss}
|
||||||
|
* Date: `date`
|
||||||
* Project: ${2:Project Name}
|
* Project: ${2:Project Name}
|
||||||
* Copyright: ${3:None}
|
* Copyright: ${3:None}
|
||||||
* Description: ${4:Funny module}
|
* Description: ${4:Funny module}
|
||||||
|
@ -198,158 +162,10 @@ $8
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet let+ "Declare and initialize Variable" A
|
|
||||||
${1:int} ${2:Variable} = ${3:0}; /* ${4:Description} */
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet let- "Declare Variable" A
|
|
||||||
${1:int} ${2:Variable}; /* ${3:Description} */
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "close\((\w+)\)" "Automatic close error implementation" brA
|
|
||||||
/* Closing file `!p snip.rv = match.group(1)` */
|
|
||||||
if (close(`!p snip.rv = match.group(1)`)) {
|
|
||||||
/* Error */
|
|
||||||
perror("${1:Could not close file!}");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet write( "Automatic write error check" A
|
|
||||||
/* Write $3 bytes from $2 to file $1 */
|
|
||||||
if (-1 == write(${1:file}, ${2:buffer}, ${3:bytes})) {
|
|
||||||
/* Error */
|
|
||||||
perror("${4:Could not write to file!}");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet /* "comment" A
|
snippet /* "comment" A
|
||||||
/* $1 */$0
|
/* $1 */$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet "read\((.+), (.+), (.+)\);" "auto read" brA
|
|
||||||
/* read `!p snip.rv = match.group(3)` from file `!p snip.rv = match.group(1)` intobuffer `!p snip.rv = match.goup(2)` */
|
|
||||||
if (-1 == read(`!p snip.rv = match.group(1)`, `!p snip.rv = match.group(2)`, `!p snip.rv = match.group(3)`)) {
|
|
||||||
/* Error */
|
|
||||||
perror("${1:Could not read to file!})";
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "fstat\((.+), (.+)\);" "auto stat" brA
|
|
||||||
/* load information about file `!p snip.rv = match.group(1)` into struct `!p snip.rv = match.group(2)` */
|
|
||||||
if (fstat(`!p snip.rv = match.group(1)`, `!p snip.rv = match.group(2)`)) {
|
|
||||||
/* Error */
|
|
||||||
perror("${1:Could not fill struct with information!}");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "ftruncate\((.+), (.+)\);" "ftruncate auto" brA
|
|
||||||
/* Resize file `!p snip.rv = match.group(1)` to size `!p snip.rv = match.group(2)` */
|
|
||||||
if (ftruncate(`!p snip.rv = match.group(1)`, `!p snip.rv = match.group(2)`)) {
|
|
||||||
/* Error */
|
|
||||||
perror("${1:Could not resize file!}j;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'system\("(.+)"\);' "Automatic system error implementation" rA
|
|
||||||
/* run system command `!p snip.rv = match.group(1)` and check for success */
|
|
||||||
if (system("`!p snip.rv = match.group(1)`")) {
|
|
||||||
/* Error */
|
|
||||||
perror(${1:"Could not execute shell command!"});
|
|
||||||
${5:exit(EXIT_FAILURE);}
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "if \(argc" "automatically add clarg check" A
|
|
||||||
/* check for right number of arguments */
|
|
||||||
if (argc ${1:!=} $2) {
|
|
||||||
/* Error */
|
|
||||||
perror("Wrong number of arguments");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "(\w+) = fork" "Auto fork error implementation" rA
|
|
||||||
/* create new subproccess `!p snip.rv = match.group(1)` */
|
|
||||||
`!p snip.rv = match.group(1)` = fork();
|
|
||||||
if (`!p snip.rv = match.group(1)` < 0) {
|
|
||||||
/* Error */
|
|
||||||
perror("fork error on creating new subprocess '`!p snip.rv = match.group(1)`'.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
} else if (!`!p snip.rv = match.group(1)`) {
|
|
||||||
/* fork runs from here */
|
|
||||||
${1:execve(proc, args, NULL)};
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pthread_create "pthreadcreate auto implement" A
|
|
||||||
/* Creating thread $1 running function $3 */
|
|
||||||
if (pthread_create(${1:thread}, ${2:NULL}, ${3:function}, ${4:args})) {
|
|
||||||
perror("Could not create thread $1.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pthread_mutex_unlock "mutex" iA
|
|
||||||
/* Unlock mutex $1 */
|
|
||||||
if ( pthread_mutex_unlock(&${1:mutex}) ) {
|
|
||||||
perror("Could not unlock mutex $1.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pthread_cond_wait "condition wait" iA
|
|
||||||
/* wait for condition $1 on mutex $2 */
|
|
||||||
if ( pthread_cond_wait(&${1:Condition}, &${2:mutex}) ) {
|
|
||||||
perror("Could not wait for signal $1 on mutex $2.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pthread_cond_signal "condition signal" iA
|
|
||||||
/* Send signal $1 */
|
|
||||||
if ( pthread_cond_signal(&${1:signal}) ) {
|
|
||||||
perror("Could not send signal $1.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pthread_mutex_lock "mutex" iA
|
|
||||||
/* lock the mutex $1 */
|
|
||||||
if ( pthread_mutex_lock(&${1:mutex}) ) {
|
|
||||||
perror("Could not lock mutex $1.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pthread_join "join thread" iA
|
|
||||||
/* join the thread $1 */
|
|
||||||
if ( pthread_join(${1:thread}, ${2:NULL}) ) {
|
|
||||||
perror("Could not join thread $1.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sigaction "signal action" i
|
|
||||||
/* call function $2 on signal $1 */
|
|
||||||
if ( sigaction(${1:SIGINT}, ${2:&act}, ${3:&old}) ) {
|
|
||||||
perror("Could not change function of signal $1 to $2.");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fflush "flush stdout" iA
|
snippet fflush "flush stdout" iA
|
||||||
/* flush stdout */
|
/* flush stdout */
|
||||||
if ( fflush(stdout) ) {
|
if ( fflush(stdout) ) {
|
||||||
|
@ -357,3 +173,13 @@ if ( fflush(stdout) ) {
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet switch "Classic C switch statement" b
|
||||||
|
switch(${1:Expression}) {
|
||||||
|
case $3:
|
||||||
|
$4
|
||||||
|
break;$5
|
||||||
|
default:
|
||||||
|
$2
|
||||||
|
}$0
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
global !p
|
||||||
|
def complete(t, opts):
|
||||||
|
if t:
|
||||||
|
opts = [m[len(t):] for m in opts if m.startswith(t)]
|
||||||
|
if len(opts) == 1:
|
||||||
|
return opts[0]
|
||||||
|
return '(' + '|'.join(opts) + ')'
|
||||||
|
endglobal
|
||||||
|
|
||||||
snippet template "template for new program" A
|
snippet template "template for new program" A
|
||||||
*-----------------------------------------------------------------
|
*-----------------------------------------------------------------
|
||||||
IDENTIFICATION DIVISION.
|
IDENTIFICATION DIVISION.
|
||||||
|
@ -13,9 +22,9 @@ snippet template "template for new program" A
|
||||||
|
|
||||||
*-------------------------
|
*-------------------------
|
||||||
WORKING-STORAGE SECTION.
|
WORKING-STORAGE SECTION.
|
||||||
$4
|
$4
|
||||||
*-----------------------------------------------------------------
|
*-----------------------------------------------------------------
|
||||||
|
|
||||||
*-----------------------------------------------------------------
|
*-----------------------------------------------------------------
|
||||||
PROCEDURE DIVISION.
|
PROCEDURE DIVISION.
|
||||||
$0
|
$0
|
||||||
|
@ -23,70 +32,7 @@ snippet template "template for new program" A
|
||||||
*-----------------------------------------------------------------
|
*-----------------------------------------------------------------
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet let "Add new Variable" A
|
|
||||||
${1:01} ${2:Name} PIC ${3:999}${4:(8) }${5:VALUE }.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet compute "Insert a computation" A
|
|
||||||
COMPUTE ${1:Expression}.
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
global !p
|
|
||||||
def complete(t, opts):
|
|
||||||
if t:
|
|
||||||
opts = [m[len(t):] for m in opts if m.startswith(t)]
|
|
||||||
if len(opts) == 1:
|
|
||||||
return opts[0]
|
|
||||||
return '(' + '|'.join(opts) + ')'
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
snippet calc "Add a Calculation with autocomplete" A
|
|
||||||
$1`!p snip.rv = complete(t[1], ['ADD', 'DIVIDE', 'MULTIPLY', 'SUBTRACT'])` ${2:Var1} `!p
|
|
||||||
try:
|
|
||||||
snip.rv = {'ADD': 'TO', 'DIVIDE': 'INTO', 'MULTIPLY': 'BY', 'SUBTRACT': 'FROM'}[t[1] + complete(t[1], ['ADD', 'DIVIDE', 'MULTIPLY', 'SUBTRACT'])]
|
|
||||||
except KeyError:
|
|
||||||
snip.rv = '---'
|
|
||||||
` ${3:Var2} GIVING ${4:VarResult}.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet move "Move value to another value" A
|
|
||||||
MOVE ${1:Const/Var} TO ${2:Var}.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet display "Display a contant or Variable" A
|
snippet display "Display a contant or Variable" A
|
||||||
DISPLAY ${1:"Hello World!"}.
|
DISPLAY ${1:"Hello World!"}.
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet accept "Accept a Value to an uninitialized Variable" A
|
|
||||||
ACCEPT ${1:Variable}.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet strinit "Initialize an empty String" A
|
|
||||||
INITIALIZE ${1:Stringvariable}.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet init "Inizialize a numerical Value" A
|
|
||||||
INITIALIZE ${1:Numerical variable} REPLACING NUMERIC DATA BY ${2:ZEROS}.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ifthen "If-then-else Clause" A
|
|
||||||
IF ${1:Condition} THEN
|
|
||||||
${2:Do this}
|
|
||||||
ELSE
|
|
||||||
${3:Do that}
|
|
||||||
END-IF.
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ifis "IF-Condition 'is' POS/NEG" A
|
|
||||||
IS $1`!p snip.rv = complete(t[1], ['POSITIVE', 'NEGATIVE'])` $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
extends c
|
||||||
|
priority 100
|
||||||
|
|
||||||
snippet header "Header wrapper" b
|
snippet header "Header wrapper" b
|
||||||
#ifndef $1
|
#ifndef $1
|
||||||
#define $1
|
#define $1
|
||||||
|
@ -7,72 +10,6 @@ $0
|
||||||
#endif//$1
|
#endif//$1
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet for "For-loop head"
|
|
||||||
for (${1:int i} = ${2:0}; ${3:i}; ${4:--i}) {
|
|
||||||
$5
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet exfun "New Function with Documentation"
|
|
||||||
/**
|
|
||||||
* @name $2
|
|
||||||
* @return `!p t[1].replace("static ", "")`
|
|
||||||
* @brief ${4: Description}
|
|
||||||
*
|
|
||||||
`!p
|
|
||||||
params = t[3].split(", ")
|
|
||||||
rval = ""
|
|
||||||
for param in params:
|
|
||||||
if len(param.split(' ')) == 2:
|
|
||||||
rval += f" * @param {param}:\t{t[2]}_{param.split(' ')[1]}\n"
|
|
||||||
snip.rv = rval`
|
|
||||||
*/
|
|
||||||
${1:int} ${2:MyFunc} (${3:void}) {
|
|
||||||
`!p
|
|
||||||
if t[1] != "void":
|
|
||||||
snip.rv = f"{t[1].replace('static ', '')} rv = 0;"
|
|
||||||
else:
|
|
||||||
snip.rv = ""`
|
|
||||||
$5
|
|
||||||
`!p
|
|
||||||
if t[1].replace("static ", "") != "void":
|
|
||||||
snip.rv = f"return rv;"
|
|
||||||
else:
|
|
||||||
snip.rv = ""`
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fun "Function template"
|
|
||||||
${1:int} ${2:Name} (${3:void}) {
|
|
||||||
$5
|
|
||||||
|
|
||||||
return ${6:`!p
|
|
||||||
if t[1].replace("static ", "") != "void":
|
|
||||||
snip.rv = f"0"
|
|
||||||
else:
|
|
||||||
snip.rv = ""`};
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet while "while loop head"
|
|
||||||
while (${1:true}) {
|
|
||||||
$2
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ifelse "If-Clause"
|
|
||||||
if ($1) {
|
|
||||||
$2
|
|
||||||
} else {
|
|
||||||
$3
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet class "Add new class" bA
|
snippet class "Add new class" bA
|
||||||
class $1 ${2::} `!p
|
class $1 ${2::} `!p
|
||||||
if t[2] == ":":
|
if t[2] == ":":
|
||||||
|
@ -150,47 +87,3 @@ for var in variables:
|
||||||
snip.rv = rv`
|
snip.rv = rv`
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet defstruct "define a new type with a struct" A
|
|
||||||
typedef struct $1 $1;
|
|
||||||
struct $1{
|
|
||||||
$2
|
|
||||||
};
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet docomment "Meta Comment" A
|
|
||||||
/*
|
|
||||||
* Filename: `!p snip.rv = fn`
|
|
||||||
* Author: ${1:Yannick Reiss}
|
|
||||||
* Project: ${2:Project Name}
|
|
||||||
* Copyright: ${3:None}
|
|
||||||
* Description: ${4:Helpful description}
|
|
||||||
*/
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet let+ "Declare and initialize Variable" A
|
|
||||||
${1:int} ${2:Variable} = ${3:0}; /* ${4:Description} */
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet let- "Declare Variable" A
|
|
||||||
${1:int} ${2:Variable}; /* ${3:Description} */
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pfun "prototype for function" bA
|
|
||||||
/**
|
|
||||||
* @name $2
|
|
||||||
* @return $1
|
|
||||||
* @brief ${4: Description}
|
|
||||||
* `!p
|
|
||||||
params = t[3].split(", ")
|
|
||||||
rval = ""
|
|
||||||
for param in params:
|
|
||||||
if len(param.split(' ')) >= 2:
|
|
||||||
rval += f"\n *\t@param {param}:\t{t[2]}_{param.split(' ')[1]}"
|
|
||||||
snip.rv = rval`
|
|
||||||
*/
|
|
||||||
${1:int} ${2:MyFunc} (${3:void});
|
|
||||||
endsnippet
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
global !p
|
|
||||||
def complete(t, opts):
|
|
||||||
if t:
|
|
||||||
opts = [ m[len(t):] for m in opts if m.startswith(t)]
|
|
||||||
if len(opts) == 1:
|
|
||||||
return opts[0]
|
|
||||||
else:
|
|
||||||
return f"({'|'.join(opts)})"
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
snippet mv "Mitglied DLRG Neuaufnahme" bA
|
|
||||||
${1}`!p
|
|
||||||
snip.rv = complete(t[1], ["Herr", "Frau", "Ohne"])
|
|
||||||
`,${2:Vorname},${3:Nachname},${4:63165}`!p
|
|
||||||
snip.rv = complete(t[4], ["63165"])`,${5:Adresse},${6:Telefonnummer},${7:Email},${8:Geburtsdatum}`!p
|
|
||||||
if t[8] != "Geburtsdatum" and len(t[8]) == 8:
|
|
||||||
if len(t[8]) > 2:
|
|
||||||
t[8] = f"{t[8][0:2]}.{t[8][2:]}"
|
|
||||||
if len(t[8]) > 4:
|
|
||||||
t[8] = f"{t[8][:5]}.{t[8][5:]}"
|
|
||||||
`,${9:Eintrittsdatum}`!p
|
|
||||||
if t[9] != "Eintrittsdatum" and len(t[9]) == 8:
|
|
||||||
if len(t[9]) > 2:
|
|
||||||
t[9] = f"{t[9][0:2]}.{t[9][2:]}"
|
|
||||||
if len(t[9]) > 4:
|
|
||||||
t[9] = f"{t[9][:5]}.{t[9][5:]}"
|
|
||||||
`,DE${10:IBAN}`!p
|
|
||||||
if len(t[10]) >= 25:
|
|
||||||
t[10] = t[10].replace(' ', '')
|
|
||||||
`,${11:Kontoinhaber*in}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
|
@ -1,16 +0,0 @@
|
||||||
global !p
|
|
||||||
def complete(t, opts):
|
|
||||||
if t:
|
|
||||||
opts = [m[len(t):] for m in opts if m.startswith(t)]
|
|
||||||
if len(opts) == 1:
|
|
||||||
return opts[0]
|
|
||||||
return '(' + '|'.join(opts) + ')'
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
snippet !! "Standard message" bA
|
|
||||||
$1`!p snip.rv=complete(t[1], ["BUG", "INFO", "UPDATE", "FEATURE", "ADD"])`: $2`!p snip.rv=complete(t[2], ["OPEN", "CLOSE", "FIX", "WARNING", "ERROR", "ADD", "REMOVED", "TODO", "NEW"])` `!p
|
|
||||||
if t[3] == "":
|
|
||||||
snip.rv = ""
|
|
||||||
else:
|
|
||||||
snip.rv = "=>"` $3
|
|
||||||
endsnippet
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
snippet ß "Add backslash" A
|
||||||
|
\\
|
||||||
|
endsnippet
|
|
@ -1,4 +1,19 @@
|
||||||
snippet << "Tag for html" bA
|
snippet helloworld "A little hello world example." b
|
||||||
<$1>$2</${1/(\w+).*/$1/}>$0
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Hello world example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 align=center>Hello World</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet << "Tag for html" bA
|
||||||
|
<${1:p}>$2</${1/(\w+).*/$1/}>$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet >> "Line break / closing tag"
|
||||||
|
</${1:br}>$0
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
snippet ff "Freunde (fast)" A
|
||||||
|
.freunde
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet wild "Widi Schild update"
|
||||||
|
widi: Schildupdate?
|
||||||
|
endsnippet
|
|
@ -0,0 +1,37 @@
|
||||||
|
snippet ß "Backslash" A
|
||||||
|
\\
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet <> "Add sharp brackets"
|
||||||
|
⟨$1⟩$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet | "dvd"
|
||||||
|
∣
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet () "Braces"
|
||||||
|
($1)$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# Mengen
|
||||||
|
snippet N "Natural number"
|
||||||
|
ℕ
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet Z "Whole numbers"
|
||||||
|
ℤ
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet R "Real"
|
||||||
|
ℝ
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# Quantoren
|
||||||
|
snippet E "Exists"
|
||||||
|
∃
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet A "All"
|
||||||
|
∀
|
||||||
|
endsnippet
|
|
@ -1,3 +0,0 @@
|
||||||
snippet pack "This is the package." bA
|
|
||||||
(package! $1)$0
|
|
||||||
endsnippet
|
|
|
@ -1,57 +1,3 @@
|
||||||
snippet fun "New function"
|
|
||||||
function ${1:Name} ($2)
|
|
||||||
$3
|
|
||||||
end;
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet while "while-loop"
|
|
||||||
while (${1:true})
|
|
||||||
do
|
|
||||||
$1
|
|
||||||
end;
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet for "for loop"
|
|
||||||
for ${1:i = 0}, ${2:target}, ${3:1}
|
|
||||||
do
|
|
||||||
$4
|
|
||||||
end;
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet repeat "repeat until loop"
|
|
||||||
repeat
|
|
||||||
$2
|
|
||||||
until (${1:Condition});
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ifthen "normal if clause"
|
|
||||||
if (${1:Condition})
|
|
||||||
then
|
|
||||||
$2
|
|
||||||
end;
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ifelse "if and else clause"
|
|
||||||
if (${1:Condition})
|
|
||||||
then
|
|
||||||
$1
|
|
||||||
else
|
|
||||||
$2
|
|
||||||
end;
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet "= fun" "Assign a function" rA
|
|
||||||
= function(${1:Parameter})
|
|
||||||
$2
|
|
||||||
end;$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet docstring "Document string" b
|
snippet docstring "Document string" b
|
||||||
-- Filename: `!p snip.rv = fn`
|
-- Filename: `!p snip.rv = fn`
|
||||||
-- Author: ${1:Yannick Reiß}
|
-- Author: ${1:Yannick Reiß}
|
||||||
|
@ -59,3 +5,22 @@ snippet docstring "Document string" b
|
||||||
-- Description: ${3:Funny lua script}
|
-- Description: ${3:Funny lua script}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet fun "New function"
|
||||||
|
-- @name $2
|
||||||
|
`!p
|
||||||
|
lines = t[5].split('\n')
|
||||||
|
for line in lines:
|
||||||
|
if line.startswith("return"):
|
||||||
|
snip.rv = f"-- @return {line.replace('return', '').replace(' ', '')}\n"
|
||||||
|
``!p
|
||||||
|
param = ""
|
||||||
|
for i in t[3].split(","):
|
||||||
|
param += f"-- @param {i.replace(' ', '')}\n"
|
||||||
|
snip.rv = param
|
||||||
|
`-- @short ${4:Description}
|
||||||
|
${1:local }function ${2:Name} (${3:})
|
||||||
|
$5
|
||||||
|
end;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
global !p
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
def get_datetime():
|
||||||
|
now = datetime.now()
|
||||||
|
now_as_list = [
|
||||||
|
now.strftime("%d"),
|
||||||
|
now.strftime("%m"),
|
||||||
|
now.strftime("%Y"),
|
||||||
|
now.strftime("%H"),
|
||||||
|
now.strftime("%M")
|
||||||
|
]
|
||||||
|
return now_as_list
|
||||||
|
|
||||||
|
def complete(t, opts):
|
||||||
|
if t:
|
||||||
|
opts = [ m[len(t):] for m in opts if m.startswith(t) ]
|
||||||
|
if len(opts) == 1:
|
||||||
|
return opts[0]
|
||||||
|
else:
|
||||||
|
return "(" + '|'.join(opts) + ")"
|
||||||
|
|
||||||
|
endglobal
|
||||||
|
|
||||||
|
snippet mail "Template for a new delayed Mail" b
|
||||||
|
time:${1:`!p snip.rv = get_datetime()[0]`}.${2:`!p snip.rv = get_datetime()[1]`}.${3:`!p snip.rv = get_datetime()[2]`} ${4:`!p snip.rv = get_datetime()[3]`}:${5:`!p snip.rv = get_datetime()[4]`}
|
||||||
|
from:$6`!p snip.rv = complete(t[6], ['yannick.reiss@nickr.eu', 'schnick@nickr.eu'])`
|
||||||
|
to:${7:schnick@nickr.eu}
|
||||||
|
subject:${8:Subject}
|
||||||
|
|
||||||
|
${9:Message}
|
||||||
|
|
||||||
|
${10:`cat ~/.signature.txt`}
|
||||||
|
endsnippet
|
|
@ -108,3 +108,9 @@ snippet rule "Add new Rule"
|
||||||
${1:all}: $2
|
${1:all}: $2
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet clean "Clean the object files and binary file" b
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
${1:rm *.o $(BIN)}
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -35,15 +35,15 @@ $1
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet cobol "Cobol Code"
|
snippet bash "bash Code"
|
||||||
\`\`\`cobol
|
\`\`\`bash
|
||||||
$1
|
$1
|
||||||
\`\`\`
|
\`\`\`
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet bash "bash Code"
|
snippet cjson "json code"
|
||||||
\`\`\`bash
|
\`\`\`json
|
||||||
$1
|
$1
|
||||||
\`\`\`
|
\`\`\`
|
||||||
$0
|
$0
|
||||||
|
@ -53,35 +53,16 @@ snippet ,m "Math equation" A
|
||||||
\$$1\$ $0
|
\$$1\$ $0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet entry "Add new entry" bA
|
snippet bookshelf "Tagline for bookshelf" b
|
||||||
-----------------------------------------------------------
|
`!p
|
||||||
## $1 ##
|
if t[1] != "":
|
||||||
### Date: ${2:`date`} ###
|
snip.rv = "[CW: "
|
||||||
### Author: ${3:`whoami`} ###
|
else:
|
||||||
### Host: `hostname` ###
|
snip.rv = ""`$1`!p
|
||||||
-----------------------------------------------------------
|
if t[1] != "":
|
||||||
Tags: $4
|
snip.rv = "]"
|
||||||
|
else:
|
||||||
$5
|
snip.rv = ""`
|
||||||
|
${2:Title} by ${3:Author}
|
||||||
-----------------------------------------------------------
|
${4:Description}
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet info "The Markdown Information panel" b
|
|
||||||
---
|
|
||||||
|
|
||||||
${1:Info}
|
|
||||||
|
|
||||||
Tags: $2
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cite "Cite from a paper" b
|
|
||||||
---
|
|
||||||
|
|
||||||
> ${1:Citation}`!p t[1].replace('\n', '\n> ')`
|
|
||||||
|
|
||||||
Tags: $2
|
|
||||||
$0
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
snippet prog "Add new program template" b
|
||||||
|
Program ${1:Name}`!p snip.rv = "" if t[2] == "" else " ("`${2:FileList}`!p snip.rv = "" if t[2] == "" else ")"`;`!p
|
||||||
|
if t[3] == "":
|
||||||
|
snip.rv = ""
|
||||||
|
else:
|
||||||
|
snip.rv = "\nconst\n (* Constant declarations *)\n "`${3:Const}`!p
|
||||||
|
if t[4] == "":
|
||||||
|
snip.rv = ""
|
||||||
|
else:
|
||||||
|
snip.rv = "\ntype\n (* Type declarations *)\n "`${4:Types}`!p
|
||||||
|
if t[5] == "":
|
||||||
|
snip.rv = ""
|
||||||
|
else:
|
||||||
|
snip.rv = "\nvar\n (* Variable declarations *)\n "`${5:Variables}
|
||||||
|
|
||||||
|
Begin
|
||||||
|
$0
|
||||||
|
End.
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet procedure "Add a new procedure" b
|
||||||
|
{ Procedure
|
||||||
|
@name: $1`!p
|
||||||
|
if t[2] == "":
|
||||||
|
snip.rv = "\n\t"
|
||||||
|
else:
|
||||||
|
snip.rv = "\n"
|
||||||
|
groups = t[2].split(";");
|
||||||
|
for group in groups:
|
||||||
|
snip.rv += f"\t@param {group}\n"
|
||||||
|
snip.rv += "\t"
|
||||||
|
`@description: $3 }
|
||||||
|
Procedure ${1:name}`!p
|
||||||
|
if not (t[2] == ""):
|
||||||
|
snip.rv = " ("
|
||||||
|
else:
|
||||||
|
snip.rv = ""`$2`!p
|
||||||
|
if not (t[2] == ""):
|
||||||
|
snip.rv = ")"
|
||||||
|
else:
|
||||||
|
snip.rv = ""`;`!p
|
||||||
|
if t[4] == "":
|
||||||
|
snip.rv = ""
|
||||||
|
else:
|
||||||
|
snip.rv = "\nVar\n\t"`$4
|
||||||
|
Begin
|
||||||
|
$0
|
||||||
|
End;
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet function "Add a new function" b
|
||||||
|
{ Procedure
|
||||||
|
@name: $1`!p
|
||||||
|
if t[2] == "":
|
||||||
|
snip.rv = "\n\t"
|
||||||
|
else:
|
||||||
|
snip.rv = "\n"
|
||||||
|
groups = t[2].split(";");
|
||||||
|
for group in groups:
|
||||||
|
snip.rv += f"\t@param {group}\n"
|
||||||
|
snip.rv += "\t"
|
||||||
|
`@return $3
|
||||||
|
@description: $4 }
|
||||||
|
Function ${1:name}`!p
|
||||||
|
if not (t[2] == ""):
|
||||||
|
snip.rv = " ("
|
||||||
|
else:
|
||||||
|
snip.rv = ""`$2`!p
|
||||||
|
if not (t[2] == ""):
|
||||||
|
snip.rv = ")"
|
||||||
|
else:
|
||||||
|
snip.rv = ""` : ${3:Integer};`!p
|
||||||
|
if t[5] == "":
|
||||||
|
snip.rv = ""
|
||||||
|
else:
|
||||||
|
snip.rv = "\nVar\n\t"`$5
|
||||||
|
Begin
|
||||||
|
$0
|
||||||
|
End;
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet -- "Add comment"
|
||||||
|
(* $1 *)$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet begin "Create Code Block" b
|
||||||
|
begin
|
||||||
|
$1
|
||||||
|
end;
|
||||||
|
$0
|
||||||
|
endsnippet
|
|
@ -1,608 +1 @@
|
||||||
snippet colx "textcolor"
|
extends latex
|
||||||
\\textcolor{${1:red}}{$2}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet tred "text red"
|
|
||||||
\\textcolor{red}{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet tblue "text blue"
|
|
||||||
\\textcolor{blue}{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet tgreen "text green"
|
|
||||||
\\textcolor{green}{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet colb "boxcolor"
|
|
||||||
\\colorbox{${1:blue}!${2:25}}{$3}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet imth "inlinemath"
|
|
||||||
$ $1 $ $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fmth "fullmath"
|
|
||||||
\\[
|
|
||||||
$1
|
|
||||||
\\]
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet vec "Vector"
|
|
||||||
\\vec{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet tag "tag and text inbetween"
|
|
||||||
${1:placeholder}
|
|
||||||
$2
|
|
||||||
$1
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet env "Environment"
|
|
||||||
\\begin{$1}
|
|
||||||
$2
|
|
||||||
\\end{$1}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet code "listing without own config"
|
|
||||||
\\begin{lstlisting}
|
|
||||||
$1
|
|
||||||
\\end{lstlisting}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ccpp "C++ listing configuration"
|
|
||||||
\\lstset{ basicstyle=\\ttfamily\\small, language=C++, keywordstyle=\\color{blue}\\bfseries } $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet casm "Assembler listing configuration"
|
|
||||||
\\lstset{basicstyle=\\ttfamily\\small, language={[${1:x86masm}]Assembler}, keywordstyle=\\color{${2:red}}\\bfseries} $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cshell "ZSH/BASH config"
|
|
||||||
\\lstset{basicstyle=\\ttfamily\\small, language={bash}, keywordstyle=\\color{${2:green}}\\bfseries} $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cocode "Free config"
|
|
||||||
\\lstset{basicstyle=\\ttfamily\\small, language={$1}, keywordstyle=\\color{${2:red}}\\bfseries} $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet confbook "Configuration for Lectures"
|
|
||||||
\\documentclass[a4paper]{report}
|
|
||||||
\\usepackage[utf8]{inputenc}
|
|
||||||
\\usepackage[ngerman]{babel}
|
|
||||||
\\usepackage[T1]{fontenc}
|
|
||||||
\\usepackage{amsmath}
|
|
||||||
\\usepackage{amsfonts}
|
|
||||||
\\usepackage{amssymb}
|
|
||||||
\\usepackage{makeidx}
|
|
||||||
\\usepackage[straightvoltages]{circuitikz}
|
|
||||||
\\usepackage[locale=DE]{siunitx}
|
|
||||||
\\usepackage{tikz}
|
|
||||||
\\usepackage[left=1cm, right=2cm, top=3cm, bottom=3cm, bindingoffset=1cm]{geometry}
|
|
||||||
\\usepackage{graphicx}
|
|
||||||
\\usepackage{lmodern}
|
|
||||||
\\usepackage{float}
|
|
||||||
\\usepackage{fancyhdr}
|
|
||||||
\\usepackage{listings}
|
|
||||||
\\usepackage{cancel}
|
|
||||||
\\usepackage{xcolor}
|
|
||||||
\\usepackage{interval}
|
|
||||||
\\usepackage{hyperref}
|
|
||||||
\\author{${1:Yannick Reiß}}
|
|
||||||
\\title{$2}
|
|
||||||
\\pagestyle{fancy}
|
|
||||||
\\fancyhead[C]{}
|
|
||||||
\\fancyhead[L]{$2}
|
|
||||||
\\fancyfoot[C]{\thepage}
|
|
||||||
|
|
||||||
${3:colorset}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet confartcl "Configuration for short articles"
|
|
||||||
\\documentclass[16pt,a4paper]{article}
|
|
||||||
\\usepackage[utf8]{inputenc}
|
|
||||||
\\usepackage[ngerman]{babel}
|
|
||||||
\\usepackage[T1]{fontenc}
|
|
||||||
\\usepackage{amsmath}
|
|
||||||
\\usepackage{amsfonts}
|
|
||||||
\\usepackage{amssymb}
|
|
||||||
\\usepackage{fancyhdr}
|
|
||||||
\\usepackage{makeidx}
|
|
||||||
\\usepackage[straightvoltages]{circuitikz}
|
|
||||||
\\usepackage[locale=DE]{siunitx}
|
|
||||||
\\usepackage{tikz}
|
|
||||||
\\usepackage{graphicx}
|
|
||||||
\\usepackage{lmodern}
|
|
||||||
\\usepackage{float}
|
|
||||||
\\usepackage{cancel}
|
|
||||||
\\usepackage[left=1cm, right=2cm, top=3cm, bottom=3cm, bindingoffset=1cm]{geometry}
|
|
||||||
\\usepackage{listings}
|
|
||||||
\\usepackage{xcolor}
|
|
||||||
\\usepackage{interval}
|
|
||||||
\\usepackage{hyperref}
|
|
||||||
\\author{${1:Yannick Reiß}}
|
|
||||||
\\title{$2}
|
|
||||||
\\pagestyle{fancy}
|
|
||||||
\\fancyhead[C]{}
|
|
||||||
\\fancyhead[L]{$2}
|
|
||||||
\\fancyfoot[C]{\thepage}
|
|
||||||
|
|
||||||
${3:colorset}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet img "Images"
|
|
||||||
\\begin{figure}
|
|
||||||
\\centering
|
|
||||||
\\includegraphics[width=${1:0.7}\\linewidth]{${2}}
|
|
||||||
\\caption{${3:Abbildung}}
|
|
||||||
\\end{figure}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet document "Add document environment"
|
|
||||||
\\begin{document}
|
|
||||||
$0
|
|
||||||
\\end{document}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet land "Logical and"
|
|
||||||
\\wedge $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet lor "Logical or"
|
|
||||||
\\vee $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ubrace "Underbrace"
|
|
||||||
\\underbrace{$1}_{$2} $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fall "For all"
|
|
||||||
\\forall{$1}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet paragraph "Paragraph"
|
|
||||||
\\paragraph{$1}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet menge "Menge der __ Zahlen"
|
|
||||||
\\mathbb{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet xdelete "Cross out"
|
|
||||||
\\xcancel{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet -> "Right normal Arrow"
|
|
||||||
\\rightarrow $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet larrow "Left normal Arrow"
|
|
||||||
\\leftarrow $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet frac "Fracture"
|
|
||||||
\\frac{$1}{$2}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet mspace "Math Space"
|
|
||||||
\\quad $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet mmspace "Math double Space"
|
|
||||||
\\qquad $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sum "Sum"
|
|
||||||
\\sum_{i=${1:0}}^{${2:n}} $3 \\qquad $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet prod "Product"
|
|
||||||
\\prod_{i=${1:1}}^{${2:N}} \\quad $3 \\qquad$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ltab "Table environment"
|
|
||||||
\\begin{tabular}{${1:c c c}}
|
|
||||||
$0
|
|
||||||
\\end{tabular}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ctab "Table column"
|
|
||||||
$1 & $2 & $3 \\\\\\
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet lltab "Large table environment"
|
|
||||||
\\begin{tabular}{${1:c c c c c}}
|
|
||||||
$0
|
|
||||||
\\end{tabular}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cctab "Large column environment"
|
|
||||||
$1 & $2 & $3 & $4 & $5 \\\\\\
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet setab "Small table environment"
|
|
||||||
\\begin{center}
|
|
||||||
\\begin{tabular}{${1:c c}}
|
|
||||||
$1
|
|
||||||
\\end{tabular}
|
|
||||||
\\end{center}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sctab "Small table column"
|
|
||||||
$1 & $2 \\\\
|
|
||||||
\\\\
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet lquote "Low Quote"
|
|
||||||
´$1´$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fquote "Full Quote"
|
|
||||||
´$1´ \\textit{($2)}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet colorset "std colorset (6 colors)"
|
|
||||||
\\definecolor{red}{RGB}{228, 3, 3}
|
|
||||||
\\definecolor{orange}{RGB}{255, 140, 0}
|
|
||||||
\\definecolor{yellow}{RGB}{255, 237, 0}
|
|
||||||
\\definecolor{green}{RGB}{0, 128, 38}
|
|
||||||
\\definecolor{indigo}{RGB}{36, 64, 142}
|
|
||||||
\\definecolor{blue}{RGB}{36, 64, 142}
|
|
||||||
\\definecolor{violet}{RGB}{115, 41, 130}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet href "html reference"
|
|
||||||
\\href{https://${1:link}}{\\underline{\\textcolor{blue}{${2:Text}}}}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet *_ "Intervall/Isotope-Notation" i
|
|
||||||
^{$1}_{$2}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet hook "Reference to text"
|
|
||||||
\\hyperref[$1]{$2}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet curled "{ ... }"
|
|
||||||
\\left\\{ $0 \\right\\}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet round "( ... )"
|
|
||||||
\\left( $0 \\right)
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet menc "Mathmode-text"
|
|
||||||
\\text{ $1 }$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet period "Periodic number"
|
|
||||||
\\overline{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet leq "lesser equal"
|
|
||||||
\\leq
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet geq "greater equal"
|
|
||||||
\\geq
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet let "lesser than"
|
|
||||||
<
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet grt "greater than"
|
|
||||||
>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet case "if else mathstyle"
|
|
||||||
\\begin{cases}
|
|
||||||
$1 & \\quad \\text{$2}\\\\\\ $3 & \\quad \\text{$4}\\\\\\ \\end{cases}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet median "Median"
|
|
||||||
\\overset{\\thicksim}{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ival "Intervall"
|
|
||||||
\\interval[$1]{$2}{$3}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet mul "multiplication"
|
|
||||||
\\cdot
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet root "nth root"
|
|
||||||
\\sqrt[${1:2}]{$2}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sdef "Definition"
|
|
||||||
\\colorbox{blue!25}{Definition: $1} \\\\\\$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet mlgs "Lineares Gleichungssytem"
|
|
||||||
\\begin{gather}
|
|
||||||
$0
|
|
||||||
\\end{gather}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cobol "COBOL config"
|
|
||||||
\\lstset{ basicstyle=\\ttfamily\\small, language=COBOL, numbers=left, keywordstyle=\\color{blue}\\bfseries} $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet '(.*)__' "sub" r
|
|
||||||
`!p snip.rv = match.group(1)`_{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet '(.*)\*\*' "upup" r
|
|
||||||
`!p snip.rv = match.group(1)`^{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ... "dots"
|
|
||||||
\\dots
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fsf "text serif"
|
|
||||||
\\textsf{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fblk "text block"
|
|
||||||
\\texttt{$1}{$0}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fit "text italic"
|
|
||||||
\\textit{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet '//(.+)//' "Make Text italic" rA
|
|
||||||
\\textit{`!p snip.rv = match.group(1)`}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fbf "text bold"
|
|
||||||
\\textbf{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet '\*\*(.+)\*\*' "Make Text bold" rA
|
|
||||||
\\textbf{`!p snip.rv = match.group(1)`}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet bit "itemize"
|
|
||||||
\\begin{itemize}
|
|
||||||
\\item $1
|
|
||||||
\\end{itemize}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ben "enumerate"
|
|
||||||
\\begin{enumerate}
|
|
||||||
\\item $1
|
|
||||||
\\end{enumerate}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet +ni+ "next item" A
|
|
||||||
|
|
||||||
\\item $1
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sch "chapter"
|
|
||||||
\\chapter{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sse "Section"
|
|
||||||
\\section{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet sss "Subsection"
|
|
||||||
\\subsection{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ssn "Subsubsection"
|
|
||||||
\\subsubsection{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet par "Paragraph"
|
|
||||||
\\paragraph{$1}$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet mquote "max quote"
|
|
||||||
\`$1\` (${2:author} : \\textit{${3:source}}, ${4:year})$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet qed "Quod erat demonstrantum"
|
|
||||||
\\begin{flushright}
|
|
||||||
$\#$
|
|
||||||
\\end{flushright}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet <- "Easy Left"
|
|
||||||
\\leftarrow $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet => "Double Right"
|
|
||||||
\\Rightarrow $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet <= "Double Left"
|
|
||||||
\\Leftarrow $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet circuit "Circuit environment"
|
|
||||||
\\colorbox{blue!10}{
|
|
||||||
\\begin{circuitikz}[european resistors]
|
|
||||||
$1
|
|
||||||
\\end{circuitikz}}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet edraw "Draw into electric circuit"
|
|
||||||
\\draw(${1:0}, ${2:0})
|
|
||||||
$3
|
|
||||||
;
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'R "Insert Resistor"
|
|
||||||
to [R=$R_{$1}: $2 \Omega$, ${3:i =$i$}, ${4:*-*}] ($5, $6)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'W "Wire"
|
|
||||||
to [short, ${1:i=$i$}, ${2:*-*}] ($3, $4)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'V "Voltage"
|
|
||||||
to [V, v=$U_{$1}: $2V$, ${3:i=$i$}, ${4:*-*}] ($5, $6)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'L "Coil"
|
|
||||||
to [L=$L_{$1}: $2H$, ${3:i=$i$}, ${4:*-*}] ($3, $4)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'C "Capacitor"
|
|
||||||
to [C=$C_{$1}: $2F$, ${3:i=$i$}, ${4:*-*}] ($3, $4)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'W' "Wired powerline"
|
|
||||||
to [short, ${1:*-*}] ($2, $3)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'G "GROUND"
|
|
||||||
to [short] node[ground] {$1} ($2, $3)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 'SA "(Sende)-Antenne"
|
|
||||||
to [short] node[antenna] {$1} ($2, $3)
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet timenow "The current time"
|
|
||||||
`date`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet texmeta "Meta with stamp for better documentation"
|
|
||||||
% Bookmark `!p import random as ran
|
|
||||||
if not snip.c:
|
|
||||||
snip.rv = t[1][0] + str(ran.randint(10, 100))` Content ${1:Title} on `date` by `echo $USER`
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet lmth "List math with align" b
|
|
||||||
\\begin{align*}
|
|
||||||
$1
|
|
||||||
\\end{align*}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet lexp "List math expression"
|
|
||||||
$1 &= ${2:First} & ${3:Second} \\\\
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet definition "Box with definition"
|
|
||||||
\\framebox{
|
|
||||||
\\colorbox{blue!25}{
|
|
||||||
\\begin{minipage}{1.0\\textwidth}
|
|
||||||
\\textbf{Definition: $1}\\\\
|
|
||||||
$2
|
|
||||||
\\end{minipage}}}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet attention "Box for attention"
|
|
||||||
\\framebox{
|
|
||||||
\\colorbox{red!25}{
|
|
||||||
\\begin{minipage}{1.0\\textwidth}
|
|
||||||
\\textbf{Achtung: $1}\\\\
|
|
||||||
$2
|
|
||||||
\\end{minipage}}}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet headline "Insert a Headline"
|
|
||||||
\\lhead{}
|
|
||||||
\\chead{\\rightmark}
|
|
||||||
\\rhead{\\date}
|
|
||||||
\\renewcommand{\\headrulewidth}{1pt}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet footline "Insert a footer"
|
|
||||||
\\lfoot{}
|
|
||||||
\\cfoot{}
|
|
||||||
\\rfoot{}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
global !p
|
|
||||||
def create_table_tabs(snip):
|
|
||||||
anon_snippet_body = ""
|
|
||||||
# get start and end line number of (expanded) snippet
|
|
||||||
start = snip.snippet_start[0]
|
|
||||||
end = snip.snippet_end[0]
|
|
||||||
# Append current line into snippet
|
|
||||||
for i in range(start, end+1):
|
|
||||||
anon_snippet_body += snip.buffer[i]
|
|
||||||
anon_snippet_body += "" if i == end else '\n'
|
|
||||||
# delete expanded snippet line while preserving the line
|
|
||||||
for i in range(start, end):
|
|
||||||
del snip.buffer[start]
|
|
||||||
# Empty last line, while preserving the line
|
|
||||||
snip.buffer[start] = ''
|
|
||||||
# Expand anonymous snippet
|
|
||||||
snip.expand_anon(anon_snippet_body)
|
|
||||||
|
|
||||||
def create_table(cols, rows, sep, start, end, head="##"):
|
|
||||||
res = ""
|
|
||||||
placeholder = 1
|
|
||||||
for _ in range(0, int(rows)):
|
|
||||||
res += start + head.replace("##", f"${placeholder} ")
|
|
||||||
placeholder += 1
|
|
||||||
for _ in range(0, int(cols) - 1):
|
|
||||||
res += sep + head.replace("##", f" ${placeholder} ")
|
|
||||||
placeholder += 1
|
|
||||||
res += end
|
|
||||||
return res[:-1]
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
post_jump "create_table_tabs(snip)"
|
|
||||||
snippet 'table(\d+),(\d+)' "Table with given row and column count" r
|
|
||||||
\begin{center}
|
|
||||||
\begin{tabular}{`!p
|
|
||||||
orient = "c"
|
|
||||||
for _ in range(0, int(match.group(1))): orient += " c"
|
|
||||||
snip.rv = orient`}
|
|
||||||
`!p
|
|
||||||
snip.rv = create_table(match.group(1), match.group(2), "&", "\t", "\\\\\\\\\n")
|
|
||||||
`$0
|
|
||||||
\end{tabular}
|
|
||||||
\end{center}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
post_jump "create_table_tabs(snip)"
|
|
||||||
snippet 'matrix(\d+),(\d+)' "Matrix with given row and column count" r
|
|
||||||
\begin{pmatrix}
|
|
||||||
`!p
|
|
||||||
snip.rv = create_table(match.group(1), match.group(2), "&", "\t", "\\\\\\\\\n")
|
|
||||||
`$0
|
|
||||||
\end{pmatrix}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
global !p
|
||||||
|
|
||||||
|
def print_hello():
|
||||||
|
print("Hello")
|
||||||
|
|
||||||
|
endglobal
|
|
@ -1,4 +1,17 @@
|
||||||
snippet docmodule "Documentation for modules" A
|
snippet helloworld "Hello world example" b
|
||||||
|
"""
|
||||||
|
File: `!p snip.rv = fn`
|
||||||
|
Author: Nicki
|
||||||
|
Created on: `date`
|
||||||
|
Description: Hello world python example
|
||||||
|
"""
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print("Hello world!")
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet docmodule "Documentation for modules"
|
||||||
"""
|
"""
|
||||||
File: `!p snip.rv = fn`
|
File: `!p snip.rv = fn`
|
||||||
Author: ${1:Yannick Reiß}
|
Author: ${1:Yannick Reiß}
|
||||||
|
@ -8,25 +21,26 @@ Description: ${2:No further description}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet def "Python Function" A
|
snippet def "Python Function"
|
||||||
def ${1:function}(${2}):
|
def ${1:function}(${2}):
|
||||||
"""
|
"""
|
||||||
@name $1
|
@name $1
|
||||||
@brief ${3:function description}
|
@brief ${3:function description}
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
`!p
|
`!p
|
||||||
params = t[2].replace(", ", ",").split(",")
|
params = t[2].replace(", ", ",").split(",")
|
||||||
snip.rv = ""
|
snip.rv = ""
|
||||||
for param in params:
|
for param in params:
|
||||||
snip.rv += f"@param {param}"
|
snip.rv += f"\t\t@param {param}\n"
|
||||||
`
|
`
|
||||||
Returns:
|
Returns:
|
||||||
$4 ${5:description}
|
@return $4
|
||||||
"""
|
"""
|
||||||
$6
|
$5
|
||||||
`!p
|
`!p
|
||||||
if t[4] != "":
|
if t[4] != "" and len(t[4].split(":")) > 1:
|
||||||
snip.rv = f"\n\treturn {t[4]}"`
|
snip.rv = f"return {t[4].split(':')[0]}"`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
|
snippet helloworld "Hello world example" b
|
||||||
|
// @name main
|
||||||
|
// @return
|
||||||
|
// @brief Hello world example.
|
||||||
|
// @param
|
||||||
|
fn main() {
|
||||||
|
println!("Hello World!");
|
||||||
|
}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
snippet fn "function declaration" i
|
snippet fn "function declaration" i
|
||||||
// @name $1
|
// @name $1
|
||||||
// @return $3
|
// @return $3
|
||||||
|
@ -13,13 +24,6 @@ else:
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet doxygen "Doxygen comment" b
|
|
||||||
// @name ${1:name}
|
|
||||||
// @return ${2:Return type}
|
|
||||||
// @param ${3:Parameter}
|
|
||||||
// @brief ${4:Description}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet struct "struct declaration"
|
snippet struct "struct declaration"
|
||||||
// $1
|
// $1
|
||||||
// ${2:Description}
|
// ${2:Description}
|
||||||
|
@ -50,28 +54,6 @@ while $1 {
|
||||||
} $0
|
} $0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
global !p
|
|
||||||
import re
|
|
||||||
def create_parameter_placeholders(snip):
|
|
||||||
placeholders_amount = int(snip.buffer[snip.line].strip())
|
|
||||||
|
|
||||||
snip.buffer[snip.line] = ''
|
|
||||||
|
|
||||||
anon_snippet_body = 'println!("' + '{}'.join(['$' + str(i+1) for i in range(placeholders_amount)]) + f"${placeholders_amount}" + '"'
|
|
||||||
|
|
||||||
if placeholders_amount > 0:
|
|
||||||
anon_snippet_body = anon_snippet_body + ', '
|
|
||||||
|
|
||||||
anon_snippet_body = anon_snippet_body + ', '.join(['$' + str(i+1) for i in range(placeholders_amount, 2*placeholders_amount)]) + ");"
|
|
||||||
|
|
||||||
snip.expand_anon(anon_snippet_body)
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
post_jump "create_parameter_placeholders(snip)"
|
|
||||||
snippet "print\d+" "println" rA
|
|
||||||
`!p snip.rv = match.group(1)`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet println "println" A
|
snippet println "println" A
|
||||||
println!("$1");$0
|
println!("$1");$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -4,3 +4,9 @@ $4
|
||||||
`!p snip.rv = "endsnippet"`
|
`!p snip.rv = "endsnippet"`
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet helloworld "A simple hello world snippet" b
|
||||||
|
${0:`!p
|
||||||
|
if not snip.c:
|
||||||
|
snip.rv = f'snippet helloworld "A simple hello world snippet" b\n{t[0]}\nendsnippet'`}
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
extends pyenv
|
||||||
|
|
||||||
|
snippet cc "Add Citation" i
|
||||||
|
\\cite{$1}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
snippet colx "textcolor"
|
snippet colx "textcolor"
|
||||||
\\textcolor{${1:red}}{$2}$0
|
\\textcolor{${1:red}}{$2}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
@ -64,6 +70,7 @@ snippet img "Images"
|
||||||
\\centering
|
\\centering
|
||||||
\\includegraphics[width=${2:0.8}\\linewidth]{${3}}
|
\\includegraphics[width=${2:0.8}\\linewidth]{${3}}
|
||||||
\\caption{${4:Abbildung}}
|
\\caption{${4:Abbildung}}
|
||||||
|
\\label{img:`!p snip.rv = t[4].lower().replace(" ", "_")`}
|
||||||
\\end{figure}
|
\\end{figure}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
@ -264,23 +271,28 @@ snippet - "new item" b
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet sch "chapter"
|
snippet sch "chapter"
|
||||||
\\chapter{$1}$0
|
\\chapter{$1}
|
||||||
|
\\label{chapter:`!p snip.rv = get_label(t[1])`}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet sse "Section"
|
snippet sse "Section"
|
||||||
\\section{$1}$0
|
\\section{$1}
|
||||||
|
\\label{section:`!p snip.rv = get_label(t[1])`}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet sss "Subsection"
|
snippet sss "Subsection"
|
||||||
\\subsection{$1}$0
|
\\subsection{$1}
|
||||||
|
\\label{subsection:`!p snip.rv = get_label(t[1])`}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet ssn "Subsubsection"
|
snippet ssn "Subsubsection"
|
||||||
\\subsubsection{$1}$0
|
\\subsubsection{$1}
|
||||||
|
\\label{subsubsection:`!p snip.rv = get_label(t[1])`}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet par "Paragraph"
|
snippet par "Paragraph"
|
||||||
\\paragraph{$1}$0
|
\\paragraph{$1}
|
||||||
|
\\label{paragraph:`!p snip.rv = get_label(t[1])`}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet mquote "max quote"
|
snippet mquote "max quote"
|
||||||
|
@ -373,6 +385,16 @@ def create_table(cols, rows, sep, start, end, head="##"):
|
||||||
placeholder += 1
|
placeholder += 1
|
||||||
res += end
|
res += end
|
||||||
return res[:-1]
|
return res[:-1]
|
||||||
|
|
||||||
|
def get_label(title):
|
||||||
|
return_label = title.lower()
|
||||||
|
return_label = return_label.replace(" ", "_")
|
||||||
|
return_label = return_label.replace("ä", "ae")
|
||||||
|
return_label = return_label.replace("ö", "oe")
|
||||||
|
return_label = return_label.replace("ü", "ue")
|
||||||
|
return_label = return_label.replace("-", "__")
|
||||||
|
|
||||||
|
return return_label
|
||||||
endglobal
|
endglobal
|
||||||
|
|
||||||
post_jump "create_table_tabs(snip)"
|
post_jump "create_table_tabs(snip)"
|
||||||
|
@ -459,7 +481,7 @@ snippet _- "Escape _ easier" iA
|
||||||
\\_
|
\\_
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet bsp "Beispielsweise" iA
|
snippet bsp "Beispielsweise" A
|
||||||
beispielsweise
|
beispielsweise
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -467,23 +489,12 @@ snippet ß "Backslash" A
|
||||||
\\
|
\\
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet bibbook "Add a new book/journal/paper reference" b
|
snippet \0 "Add another Backslash" iA
|
||||||
\\bibitem{${1:Reference_name}}
|
\\\\
|
||||||
${2:Author}. (${3:2023}) \`${4:Title}'. ${5:Extension} `!p
|
|
||||||
if t[6] == "":
|
|
||||||
snip.rv = ""
|
|
||||||
elif "-" in t[6]:
|
|
||||||
snip.rv = "Seiten "
|
|
||||||
else:
|
|
||||||
snip.rv = "Seite"
|
|
||||||
`$6`!p
|
|
||||||
if t[6] == "":
|
|
||||||
snip.rv = ""
|
|
||||||
else:
|
|
||||||
snip.rv = "."`
|
|
||||||
$0
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet cc "Cite" A
|
snippet setenv "Set Environment around Text" b
|
||||||
\\cite{$1}$0
|
\\begin{$1}
|
||||||
|
${VISUAL}
|
||||||
|
\\end{$1}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
snippet entry "Add new entry" bA
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
|
||||||
--- Title: $1
|
|
||||||
--- Date: ${2:`date`}
|
|
||||||
--- Author: ${3:`whoami`}
|
|
||||||
--- Host: `hostname`
|
|
||||||
-----------------------------------------------------------
|
|
||||||
Tags: $4
|
|
||||||
|
|
||||||
$5
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet 1) "Enumerated List" b
|
|
||||||
1) $1
|
|
||||||
`!p
|
|
||||||
if t[1] == "":
|
|
||||||
index = 2
|
|
||||||
if " \n" in t[1]:
|
|
||||||
t[1] = t[1].replace(" \n", f"\n{index})")
|
|
||||||
index += 1`
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet - "Itemized List" b
|
|
||||||
- $1
|
|
||||||
`!p
|
|
||||||
t[1] = t[1].replace(" \n", f"\n-")`
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
global !p
|
|
||||||
def complete(t, opts):
|
|
||||||
if t:
|
|
||||||
opts = [ m[len(t):] for m in opts if m.startswith(t)]
|
|
||||||
if len(opts) == 1:
|
|
||||||
return opts[0]
|
|
||||||
else:
|
|
||||||
return f"({'|'.join(opts)})"
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
snippet mgl "DLRG neues Mitglied" b
|
|
||||||
${1:Num}|${2:Eintrittsdatum}`!p
|
|
||||||
if t[2] != "Eintrittsdatum" and len(t[2]) == 8:
|
|
||||||
if len(t[2]) > 2:
|
|
||||||
t[2] = f"{t[2][0:2]}.{t[2][2:]}"
|
|
||||||
if len(t[2]) > 4:
|
|
||||||
t[2] = f"{t[2][:5]}.{t[2][5:]}"
|
|
||||||
`|${3:Geburtsdatum}`!p
|
|
||||||
if t[3] != "Geburtsdatum" and len(t[3]) == 8:
|
|
||||||
if len(t[3]) > 2:
|
|
||||||
t[3] = f"{t[3][0:2]}.{t[3][2:]}"
|
|
||||||
if len(t[3]) > 4:
|
|
||||||
t[3] = f"{t[3][:5]}.{t[3][5:]}"
|
|
||||||
`|${4:PLZ}|${5}`!p snip.rv= complete(t[5], ['Offenbach', 'Hanau', 'Mühlheim', 'Frankfurt'])`|${6:Adresse}|${7:Nachname}`!p t[7] = t[7].upper()`, ${8:Vorname}
|
|
||||||
|
|
||||||
endsnippet
|
|
|
@ -61,3 +61,7 @@ snippet def "Definition/Constant" b
|
||||||
\`define ${1:NAME} ${2:VALUE}
|
\`define ${1:NAME} ${2:VALUE}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet filename "Get Filename" b
|
||||||
|
// `pwd`/`!p snip.rv = fn`
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -49,7 +49,7 @@ endsnippet
|
||||||
snippet docstring "Header Comment" A
|
snippet docstring "Header Comment" A
|
||||||
-- `!p snip.rv = fn`
|
-- `!p snip.rv = fn`
|
||||||
-- Created on: `date`
|
-- Created on: `date`
|
||||||
-- Author(s): ${1:Alexander Graf, Carl Ries, Yannick Reiß}
|
-- Author(s): ${1:Nina Chloé Reiß}
|
||||||
-- Content: ${2: Entity `!p snip.rv = fn.split('.')[0]`}
|
-- Content: ${2: Entity `!p snip.rv = fn.split('.')[0]`}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
@ -73,3 +73,7 @@ endsnippet
|
||||||
snippet regflit "reg_idx from literal" iA
|
snippet regflit "reg_idx from literal" iA
|
||||||
std_logic_vector(to_unsigned('${1:Literal}', reg_adr_size));
|
std_logic_vector(to_unsigned('${1:Literal}', reg_adr_size));
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet fillvec "Stdout to fill a vector" A
|
||||||
|
(others => '0')
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
snippet fun "Lua function" b
|
snippet nnoremap "Normal mode remap" b
|
||||||
function ${1:name}()
|
nnoremap ${1:<leader>key} $2$0
|
||||||
$2
|
|
||||||
endfunction$0
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
snippet << "automated tag insertion" A
|
||||||
|
<${1:tag}>
|
||||||
|
$2
|
||||||
|
</${1/(\w+).*/$1/}>$0
|
||||||
|
endsnippet
|
9
init.lua
9
init.lua
|
@ -1,7 +1,8 @@
|
||||||
-- Basic setup configuration
|
-- Basic setup configuration
|
||||||
vim.cmd("source ~/.config/nvim/viml/vanilla.vim")
|
|
||||||
require("vanilla")
|
require("vanilla")
|
||||||
|
|
||||||
|
vim.cmd("source ~/.config/nvim/viml/automacro.vim")
|
||||||
|
|
||||||
-- Lazy plugin setup
|
-- Lazy plugin setup
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
if not vim.loop.fs_stat(lazypath) then
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
@ -19,9 +20,3 @@ vim.opt.rtp:prepend(lazypath)
|
||||||
require("lazy").setup("plugins")
|
require("lazy").setup("plugins")
|
||||||
|
|
||||||
require("plugconfig")
|
require("plugconfig")
|
||||||
|
|
||||||
require("confformat")
|
|
||||||
|
|
||||||
vim.cmd("source ~/.config/nvim/viml/plugconfig.vim")
|
|
||||||
|
|
||||||
local plugtestbench = require("plugbench")
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
"UltiSnips": { "branch": "master", "commit": "b393ba65386d47664421e1f8b246a87a6e8b218c" },
|
|
||||||
"barbar.nvim": { "branch": "master", "commit": "71ac376acd000743146b1e08e62151b4d887bbac" },
|
|
||||||
"bufstop": { "branch": "master", "commit": "e453ed3f03d53df9e8ba69225fbe523cf44b1b13" },
|
|
||||||
"cyberspace.vim": { "branch": "master", "commit": "8d002ef6a449f08025d75249078ecae75a136a2d" },
|
|
||||||
"formatter.nvim": { "branch": "master", "commit": "cb4778b8432f1ae86dae4634c0b611cb269a4c2f" },
|
|
||||||
"fuzzy.nvim": { "branch": "master", "commit": "67a42ad2fa6d5ff41f0ef3cf69bb247410da5d7a" },
|
|
||||||
"git-blame.nvim": { "branch": "master", "commit": "196602b570b1d754b7b8f9a9f75fa7bd88f12ef8" },
|
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" },
|
|
||||||
"lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" },
|
|
||||||
"lexima.vim": { "branch": "master", "commit": "5513d686801993b40c55baa65602f79cd3cf3c77" },
|
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "fe4cce44dec93c69be17dad79b21de867dde118a" },
|
|
||||||
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
|
|
||||||
"nerdtree": { "branch": "master", "commit": "bdf81a086dd271571104a11f555b79e5cdff5dc5" },
|
|
||||||
"nerdtree-git-plugin": { "branch": "master", "commit": "e1fe727127a813095854a5b063c15e955a77eafb" },
|
|
||||||
"nvim-dap": { "branch": "master", "commit": "fc880e82059eb21c0fa896be60146e5f17680648" },
|
|
||||||
"nvim-doxyscan": { "branch": "master", "commit": "2c266fdb9395d6afa5d7188f8212fd7757193990" },
|
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "1699ce10c3aaf861cfa0c1303fcd19d2ed93e7ad" },
|
|
||||||
"nvim-sourcer": { "branch": "main", "commit": "a2f6bc737a63a208d39fcc5c211076ea5aa9f390" },
|
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "917d696592a34917a12208f579d5e72c1a904aee" },
|
|
||||||
"nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" },
|
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "14ac5887110b06b89a96881d534230dac3ed134d" },
|
|
||||||
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
|
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
|
|
||||||
"telescope-ultisnips.nvim": { "branch": "main", "commit": "d1cca4b5aa809a90b7a8caddeb860329d5a8c2ff" },
|
|
||||||
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "610179f7f12db3d08540b6cc61434db2eaecbcff" },
|
|
||||||
"vim-airline": { "branch": "master", "commit": "d9f42cb46710e31962a9609939ddfeb0685dd779" },
|
|
||||||
"vim-airline-themes": { "branch": "master", "commit": "a9aa25ce323b2dd04a52706f4d1b044f4feb7617" },
|
|
||||||
"vim-devicons": { "branch": "master", "commit": "71f239af28b7214eebb60d4ea5bd040291fb7e33" },
|
|
||||||
"vim-easycomplete": { "branch": "master", "commit": "dcad32ab5e935bf3042208803c09f5fc8b25adc5" },
|
|
||||||
"vim-monokai-tasty": { "branch": "master", "commit": "57c67feac63158a232c43aee2f463a994029b699" },
|
|
||||||
"vim-speeddating": { "branch": "master", "commit": "5a36fd29df63ea3f65562bd2bb837be48a5ec90b" },
|
|
||||||
"vim-startify": { "branch": "master", "commit": "4e089dffdad46f3f5593f34362d530e8fe823dcf" },
|
|
||||||
"vim-startuptime": { "branch": "master", "commit": "308b0088a864c4711a96e45b6734cf9294074f65" },
|
|
||||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
|
||||||
"vim-visual-multi": { "branch": "master", "commit": "cff14071098de5279743b009c496303995fe4df9" }
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023/Arch Linux) (format=lualatex 2023.7.21) 16 AUG 2023 18:24
|
|
||||||
restricted system commands enabled.
|
|
||||||
**viml/legacyconf.vim
|
|
||||||
(./viml/legacyconf.vim
|
|
||||||
LaTeX2e <2022-11-01> patch level 1
|
|
||||||
Lua module: luaotfload 2022-10-03 3.23 Lua based OpenType font support
|
|
||||||
Lua module: lualibs 2022-10-04 2.75 ConTeXt Lua standard libraries.
|
|
||||||
Lua module: lualibs-extended 2022-10-04 2.75 ConTeXt Lua libraries -- extended c
|
|
||||||
ollection.
|
|
||||||
luaotfload | conf : Root cache directory is "/home/nick/.texlive/texmf-var/luate
|
|
||||||
x-cache/generic/names".
|
|
||||||
luaotfload | init : Loading fontloader "fontloader-2022-10-03.lua" from kpse-res
|
|
||||||
olved path "/usr/share/texmf-dist/tex/luatex/luaotfload/fontloader-2022-10-03.lu
|
|
||||||
a".
|
|
||||||
Lua-only attribute luaotfload@noligature = 1
|
|
||||||
luaotfload | init : Context OpenType loader version 3.120
|
|
||||||
Inserting `luaotfload.node_processor' in `pre_linebreak_filter'.
|
|
||||||
Inserting `luaotfload.node_processor' in `hpack_filter'.
|
|
||||||
Inserting `luaotfload.glyph_stream' in `glyph_stream_provider'.
|
|
||||||
Inserting `luaotfload.define_font' in `define_font'.
|
|
||||||
Lua-only attribute luaotfload_color_attribute = 2
|
|
||||||
luaotfload | conf : Root cache directory is "/home/nick/.texlive/texmf-var/luate
|
|
||||||
x-cache/generic/names".
|
|
||||||
Inserting `luaotfload.harf.strip_prefix' in `find_opentype_file'.
|
|
||||||
Inserting `luaotfload.harf.strip_prefix' in `find_truetype_file'.
|
|
||||||
Removing `luaotfload.glyph_stream' from `glyph_stream_provider'.
|
|
||||||
Inserting `luaotfload.harf.glyphstream' in `glyph_stream_provider'.
|
|
||||||
Inserting `luaotfload.harf.finalize_vlist' in `post_linebreak_filter'.
|
|
||||||
Inserting `luaotfload.harf.finalize_hlist' in `hpack_filter'.
|
|
||||||
Inserting `luaotfload.cleanup_files' in `wrapup_run'.
|
|
||||||
Inserting `luaotfload.harf.finalize_unicode' in `finish_pdffile'.
|
|
||||||
Inserting `luaotfload.glyphinfo' in `glyph_info'.
|
|
||||||
Lua-only attribute luaotfload.letterspace_done = 3
|
|
||||||
Inserting `luaotfload.aux.set_sscale_dimens' in `luaotfload.patch_font'.
|
|
||||||
Inserting `luaotfload.aux.set_font_index' in `luaotfload.patch_font'.
|
|
||||||
Inserting `luaotfload.aux.patch_cambria_domh' in `luaotfload.patch_font'.
|
|
||||||
Inserting `luaotfload.aux.fixup_fontdata' in `luaotfload.patch_font_unsafe'.
|
|
||||||
Inserting `luaotfload.aux.set_capheight' in `luaotfload.patch_font'.
|
|
||||||
Inserting `luaotfload.aux.set_xheight' in `luaotfload.patch_font'.
|
|
||||||
Inserting `luaotfload.rewrite_fontname' in `luaotfload.patch_font'. L3 programm
|
|
||||||
ing layer <2023-02-22>
|
|
||||||
Inserting `tracingstacklevels' in `input_level_string'.
|
|
||||||
|
|
||||||
! LaTeX Error: Missing \begin{document}.
|
|
||||||
|
|
||||||
See the LaTeX manual or LaTeX Companion for explanation.
|
|
||||||
Type H <return> for immediate help.
|
|
||||||
...
|
|
||||||
|
|
||||||
l.1 "
|
|
||||||
NERDTree remap
|
|
||||||
?
|
|
||||||
! Emergency stop.
|
|
||||||
...
|
|
||||||
|
|
||||||
l.1 "
|
|
||||||
NERDTree remap
|
|
||||||
You're in trouble here. Try typing <return> to proceed.
|
|
||||||
If that doesn't work, type X <return> to quit.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Here is how much of LuaTeX's memory you used:
|
|
||||||
21 strings out of 478285
|
|
||||||
100000,1977958 words of node,token memory allocated 333 words of node memory still in use:
|
|
||||||
2 hlist, 1 local_par, 1 dir, 1 glue, 3 kern, 1 glyph, 3 attribute, 39 glue_sp
|
|
||||||
ec, 3 attribute_list, 1 temp nodes
|
|
||||||
avail lists: 2:5,3:3,4:1,5:1,7:1
|
|
||||||
20343 multiletter control sequences out of 65536+600000
|
|
||||||
14 fonts using 591679 bytes
|
|
||||||
13i,0n,12p,58b,15s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
|
||||||
! ==> Fatal error occurred, no output PDF file produced!
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
-- Lua vim-dummy variable
|
||||||
|
if vim == nil then
|
||||||
|
local vim = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- @name Prove
|
||||||
|
-- @param
|
||||||
|
-- @short Run gnatprove
|
||||||
|
function Prove()
|
||||||
|
vim.cmd("new")
|
||||||
|
local run_cmd = { "alr gnatprove" }
|
||||||
|
vim.api.nvim_buf_set_lines(0, 0, -1, false, run_cmd)
|
||||||
|
vim.cmd(":%!bash")
|
||||||
|
|
||||||
|
buffer_loaded = true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- @name Run
|
||||||
|
-- @param
|
||||||
|
-- @short Run program using alire
|
||||||
|
function Run()
|
||||||
|
vim.cmd("new")
|
||||||
|
local run_cmd = { "alr run" }
|
||||||
|
vim.api.nvim_buf_set_lines(0, 0, -1, false, run_cmd)
|
||||||
|
vim.cmd(":%!bash")
|
||||||
|
|
||||||
|
buffer_loaded = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function Close_Prove()
|
||||||
|
if buffer_loaded then
|
||||||
|
buffer_loaded = false
|
||||||
|
vim.cmd("bd!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "pp", ":lua Close_Prove()<cr>")
|
||||||
|
vim.keymap.set("n", "<leader>pp", ":lua Prove()<cr>")
|
||||||
|
vim.keymap.set("n", "<leader>op", ":lua Run()<cr>")
|
||||||
|
|
||||||
|
-- @name setup_ada
|
||||||
|
-- @param
|
||||||
|
-- @short Verify installation of ada tools or install them.
|
||||||
|
local function setup_ada()
|
||||||
|
vim.keymap.set("n", "<leader>cb", ":!gnatpp %<cr>")
|
||||||
|
vim.opt.tabstop = 3
|
||||||
|
vim.opt.shiftwidth = 3
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Setup and verify ada tools when opening a ada file
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter" }, {
|
||||||
|
pattern = { "*.adb", "*.ads" },
|
||||||
|
callback = setup_ada,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- @name leave_ada
|
||||||
|
-- @param
|
||||||
|
-- @short Leave ada and reverse any changes to my editor defaults
|
||||||
|
local function leave_ada()
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufLeave" }, {
|
||||||
|
pattern = { "*.adb", "*.ads" },
|
||||||
|
callback = leave_ada,
|
||||||
|
})
|
|
@ -4,29 +4,127 @@
|
||||||
-- preview: show more details
|
-- preview: show more details
|
||||||
vim.opt.completeopt = { "menu", "menuone" }
|
vim.opt.completeopt = { "menu", "menuone" }
|
||||||
|
|
||||||
vim.g.easycomplete_cursor_word_hl = 1
|
-- shortmess is used to reduce verbocity
|
||||||
vim.g.easycomplete_nerd_font = 1
|
-- vim.opt.shortmess = vim.opt.shortmess + { c = true }
|
||||||
|
local cmp = require("cmp")
|
||||||
|
cmp.setup({
|
||||||
|
-- configuration
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["UltiSnips#Anon"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Bind reference and navigation options (using f as primary)
|
-- Add borders to the windows
|
||||||
vim.keymap.set("n", "fr", ":EasyCompleteReference<CR>")
|
view = {
|
||||||
vim.keymap.set("n", "fd", ":EasyCompleteGotoDefinition<CR>")
|
entries = "custom",
|
||||||
vim.keymap.set("n", "fn", ":EasyCompleteRename<CR>")
|
},
|
||||||
vim.keymap.set("n", "fb", ":BackToOriginalBuffer<CR>")
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
|
||||||
vim.g.easycomplete_pum_format = { "kind", "abbr", "menu" }
|
-- experimental settings
|
||||||
vim.cmd([[
|
experimental = {
|
||||||
hi EasyFuzzyMatch guifg=lightblue
|
ghost_text = {},
|
||||||
]])
|
},
|
||||||
vim.g.easycomplete_directory_enable = 1
|
|
||||||
|
|
||||||
vim.g.easycomplete_tab_trigger = "<c-j>"
|
-- mapping
|
||||||
vim.g.easycomplete_shift_tab_trigger = "<c-k>"
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
-- Shift+TAB to go to the Previous Suggested item
|
||||||
|
["<C-k>"] = cmp.mapping.select_prev_item(),
|
||||||
|
-- Tab to go to the next suggestion
|
||||||
|
["<C-j>"] = cmp.mapping.select_next_item(),
|
||||||
|
-- CTRL+SHIFT+f to scroll backwards in description
|
||||||
|
["<C-S-f>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
-- CTRL+F to scroll forwards in the description
|
||||||
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
-- CTRL+SPACE to bring up completion at current Cursor location
|
||||||
|
["<C-Space>"] = cmp.mapping.complete(),
|
||||||
|
-- CTRL+e to exit suggestion and close it
|
||||||
|
["<C-d>"] = cmp.mapping.close(), -- TODO: Search better option
|
||||||
|
-- CR (enter or return) to CONFIRM the currently selection suggestion
|
||||||
|
-- We set the ConfirmBehavior to insert the Selected suggestion
|
||||||
|
["<CR>"] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Insert,
|
||||||
|
select = true,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
|
||||||
-- Diagnostics
|
-- installed sources for code suggestion
|
||||||
vim.g.easycomplete_diagnostics_next = "<c-n>"
|
sources = cmp.config.sources({
|
||||||
vim.g.easycomplete_diagnostics_prev = "<c-p>"
|
{ name = "ultisnips", keyword_length = 1 },
|
||||||
vim.g.easycomplete_signature_offset = 0
|
{ name = "path" },
|
||||||
vim.g.easycomplete_diagnostics_enable = 1
|
{ name = "nvim_lsp", keyword_length = 2 },
|
||||||
vim.g.easycomplete_signature_enable = 1
|
{ name = "nvim_lsp_signature_help" },
|
||||||
vim.g.easycomplete_diagnostics_hover = 1
|
{ name = "nvim_lua", keyword_length = 2 },
|
||||||
vim.g.easycomplete_lsp_checking = 0 -- suppress warning on startup, must run LSPInstall manually
|
{ name = "buffer", keyword_length = 2 },
|
||||||
|
{ name = "calc" },
|
||||||
|
{ name = "lua-latex-symbols", option = { cache = true } },
|
||||||
|
{ name = "cmp_tabnine", keyword_length = 20 },
|
||||||
|
-- { name = "fuzzy_buffer", keyword_length = 4 },
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- add formatting of the different sources
|
||||||
|
formatting = {
|
||||||
|
fields = { "menu", "abbr", "kind" },
|
||||||
|
format = function(entry, item)
|
||||||
|
local menu_icon = {
|
||||||
|
ultisnips = "Φ",
|
||||||
|
nvim_lsp = "λ",
|
||||||
|
path = "",
|
||||||
|
calc = "Σ",
|
||||||
|
buffer = "",
|
||||||
|
lualatexsymbols = "",
|
||||||
|
spell = "",
|
||||||
|
fuzzy_buffer = "",
|
||||||
|
cmp_tabnine = "🖳",
|
||||||
|
}
|
||||||
|
item.menu = menu_icon[entry.source.name]
|
||||||
|
return item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||||
|
cmp.setup.cmdline({ "/", "?" }, {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = {
|
||||||
|
{ name = "buffer" },
|
||||||
|
{ name = "fuzzy_path", keyword_length = 4 },
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
fields = { "menu", "abbr", "kind" },
|
||||||
|
format = function(entry, item)
|
||||||
|
local menu_icon = {
|
||||||
|
buffer = "",
|
||||||
|
fuzzy_path = "",
|
||||||
|
}
|
||||||
|
item.menu = menu_icon[entry.source.name]
|
||||||
|
return item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||||
|
cmp.setup.cmdline(":", {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = "path" },
|
||||||
|
{ name = "cmdline_history", keyword_length = 24 },
|
||||||
|
}, {
|
||||||
|
{ name = "cmdline", keyword_length = 1 },
|
||||||
|
}),
|
||||||
|
formatting = {
|
||||||
|
fields = { "menu", "abbr", "kind" },
|
||||||
|
format = function(entry, item)
|
||||||
|
local menu_icon = {
|
||||||
|
path = "",
|
||||||
|
cmdline = "",
|
||||||
|
cmdline_history = " ",
|
||||||
|
}
|
||||||
|
item.menu = menu_icon[entry.source.name]
|
||||||
|
return item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
|
@ -12,8 +12,6 @@ require("formatter").setup({
|
||||||
-- Formatter configurations for filetype "lua" go here
|
-- Formatter configurations for filetype "lua" go here
|
||||||
-- and will be executed in order
|
-- and will be executed in order
|
||||||
lua = {
|
lua = {
|
||||||
-- "formatter.filetypes.lua" defines default configurations for the
|
|
||||||
-- "lua" filetype
|
|
||||||
require("formatter.filetypes.lua").stylua,
|
require("formatter.filetypes.lua").stylua,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -45,6 +43,34 @@ require("formatter").setup({
|
||||||
require("formatter.filetypes.rust").rustfmt,
|
require("formatter.filetypes.rust").rustfmt,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
haskell = {
|
||||||
|
function()
|
||||||
|
-- Full specification of configurations is down below and in Vim help
|
||||||
|
-- files
|
||||||
|
return {
|
||||||
|
exe = "fourmolu",
|
||||||
|
args = {
|
||||||
|
util.escape_path(util.get_current_buffer_file_path()),
|
||||||
|
},
|
||||||
|
stdin = true,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
vhdl = {
|
||||||
|
function()
|
||||||
|
-- Full specification of configurations is down below and in Vim help
|
||||||
|
-- files
|
||||||
|
return {
|
||||||
|
exe = "vhdlfmt",
|
||||||
|
args = {
|
||||||
|
util.escape_path(util.get_current_buffer_file_path()),
|
||||||
|
},
|
||||||
|
stdin = true,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Use the special "*" filetype for defining formatter configurations on
|
-- Use the special "*" filetype for defining formatter configurations on
|
||||||
-- any filetype
|
-- any filetype
|
||||||
["*"] = {
|
["*"] = {
|
||||||
|
@ -54,3 +80,13 @@ require("formatter").setup({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Formatter autocommands
|
||||||
|
vim.cmd([[
|
||||||
|
augroup FormatAutogroup
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWritePost * FormatWrite
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
autocmd BufWritePost *.v lua vim.lsp.buf.format({ async = false })
|
||||||
|
]])
|
|
@ -0,0 +1,34 @@
|
||||||
|
-- Ale configuration
|
||||||
|
vim.g.ale_linters_explicit = 0
|
||||||
|
local linters = {
|
||||||
|
python = { "pylint" },
|
||||||
|
vim = { "vint" },
|
||||||
|
cpp = { "clang" },
|
||||||
|
c = { "clang" },
|
||||||
|
markdown = { "languagetool" },
|
||||||
|
latex = { "proselint" },
|
||||||
|
tex = { "proselint" },
|
||||||
|
plaintex = { "proselint" },
|
||||||
|
ada = { "gnat", "gcc", "adals", "cspell" },
|
||||||
|
}
|
||||||
|
|
||||||
|
local fixers = {
|
||||||
|
ada = { "gnatpp" },
|
||||||
|
asm = { "gcc" },
|
||||||
|
bash = { "bashate" },
|
||||||
|
c = { "astyle" },
|
||||||
|
latex = { "texlab", "textlint" },
|
||||||
|
tex = { "textlint" },
|
||||||
|
lua = { "stylua" },
|
||||||
|
markdown = { "prettier", "pandoc" },
|
||||||
|
python = { "yapf" },
|
||||||
|
pascal = { "ptop" },
|
||||||
|
haskell = { "fourmolu" },
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.g.ale_linters = linters
|
||||||
|
vim.g.ale_fix_on_save = 0
|
||||||
|
vim.g.ale_fixers = fixers
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>lf", ":ALEFix<CR>")
|
||||||
|
vim.keymap.set("n", "<leader>lp", ":ALEFindReferences<CR>")
|
|
@ -0,0 +1,90 @@
|
||||||
|
-- Mason setup
|
||||||
|
require("mason").setup(require("mason").setup({
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
package_installed = "✓",
|
||||||
|
package_pending = "",
|
||||||
|
package_uninstalled = "✗",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
require("mason-lspconfig").setup({
|
||||||
|
ensure_installed = {
|
||||||
|
"lua_ls",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- require("mason-lspconfig").setup_handlers({
|
||||||
|
-- function(asm_lsp)
|
||||||
|
-- require("lspconfig")[asm_lsp].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(clangd)
|
||||||
|
-- require("lspconfig")[clangd].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(lua_ls)
|
||||||
|
-- require("lspconfig")[lua_ls].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(hls)
|
||||||
|
-- require("lspconfig")[hls].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(rust_analyzer)
|
||||||
|
-- require("lspconfig")[rust_analyzer].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(vhdl_ls)
|
||||||
|
-- require("lspconfig")[vhdl_ls].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(verible)
|
||||||
|
-- require("lspconfig")[verible].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(vimls)
|
||||||
|
-- require("lspconfig")[vimls].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(texlab)
|
||||||
|
-- require("lspconfig")[texlab].setup({})
|
||||||
|
-- end,
|
||||||
|
-- function(als)
|
||||||
|
-- require("lspconfig")[als].setup({})
|
||||||
|
-- end,
|
||||||
|
-- })
|
||||||
|
|
||||||
|
require("lspconfig").verible.setup({
|
||||||
|
cmd = { "verible-verilog-ls", "--rules_config_search" },
|
||||||
|
})
|
||||||
|
|
||||||
|
-- @name file_exists
|
||||||
|
-- @param (name
|
||||||
|
-- @short Check if a file does exists (i. e. an ada project file)
|
||||||
|
local function file_exists(name)
|
||||||
|
local f = io.open(name, "r")
|
||||||
|
return f ~= nil and io.close(f)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- @name get_config_file
|
||||||
|
-- @param
|
||||||
|
-- @short Get the configuration file.
|
||||||
|
local function get_config_file()
|
||||||
|
local filename = vim.api.nvim_buf_get_name(0)
|
||||||
|
local basedirectory = filename:gsub("/[^%/]-$", "")
|
||||||
|
local currentdirectory = filename:match("[^%/]-$")
|
||||||
|
|
||||||
|
if file_exists(basedirectory .. currentdirectory .. ".gpr") then
|
||||||
|
return basedirectory .. currentdirectory .. ".gpr"
|
||||||
|
else
|
||||||
|
basedirectory = basedirectory:gsub("/[^%/]-$", "")
|
||||||
|
currentdirectory = filename:match("[^%/]-$")
|
||||||
|
if file_exists(basedirectory .. currentdirectory .. ".gpr") then
|
||||||
|
return basedirectory .. currentdirectory .. ".gpr"
|
||||||
|
else
|
||||||
|
return "default.gpr"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require("lspconfig").als.setup({
|
||||||
|
settings = {
|
||||||
|
ada = {
|
||||||
|
projectFile = get_config_file(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
|
@ -1,23 +0,0 @@
|
||||||
-- default config:
|
|
||||||
require("peek").setup({
|
|
||||||
auto_load = true, -- whether to automatically load preview when
|
|
||||||
-- entering another markdown buffer
|
|
||||||
close_on_bdelete = true, -- close preview window on buffer delete
|
|
||||||
|
|
||||||
syntax = true, -- enable syntax highlighting, affects performance
|
|
||||||
|
|
||||||
theme = "dark", -- 'dark' or 'light'
|
|
||||||
|
|
||||||
update_on_change = true,
|
|
||||||
|
|
||||||
app = "webview", -- 'webview', 'browser', string or a table of strings
|
|
||||||
-- explained below
|
|
||||||
|
|
||||||
filetype = { "markdown" }, -- list of filetypes to recognize as markdown
|
|
||||||
|
|
||||||
-- relevant if update_on_change is true
|
|
||||||
throttle_at = 200000, -- start throttling when file exceeds this
|
|
||||||
-- amount of bytes in size
|
|
||||||
throttle_time = "auto", -- minimum amount of time in milliseconds
|
|
||||||
-- that has to pass before starting new render
|
|
||||||
})
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
-- Bufstop
|
||||||
|
vim.keymap.set("n", "<M-w>", ":bdelete<CR>")
|
||||||
|
vim.keymap.set("n", "<C-y>", ":BufstopFast<CR>")
|
||||||
|
|
||||||
|
-- NERDTree Config
|
||||||
|
vim.g.NERDTreeShowHidden = 1
|
||||||
|
vim.keymap.set("n", "<C-e>", ":NERDTreeToggle<CR>")
|
||||||
|
|
||||||
|
-- Telescope snippet
|
||||||
|
local builtin = require("telescope.builtin")
|
||||||
|
vim.keymap.set("n", "<leader>ff", builtin.find_files, {})
|
||||||
|
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
|
||||||
|
vim.keymap.set("n", "<c-f>", builtin.current_buffer_fuzzy_find, {})
|
||||||
|
vim.keymap.set("n", "<leader>fh", builtin.help_tags, {})
|
||||||
|
vim.keymap.set("n", "<leader>fc", builtin.commands, {})
|
||||||
|
|
||||||
|
-- Telescope + Ultisnips
|
||||||
|
require("telescope").load_extension("ultisnips")
|
||||||
|
vim.keymap.set("n", "<leader>fs", require("telescope").extensions.ultisnips.ultisnips, {})
|
||||||
|
|
||||||
|
-- Tagbar
|
||||||
|
vim.keymap.set("n", "<F8>", ":TagbarToggle<CR>") -- permanent window
|
||||||
|
vim.keymap.set("n", "<C-j>", ":TagbarOpenAutoClose<CR>") -- select, jump, close
|
||||||
|
vim.g.tagbar_autoclose = 0 -- do not autoclose after selection
|
|
@ -0,0 +1,56 @@
|
||||||
|
-- Lua vim-dummy variable
|
||||||
|
if vim == nil then
|
||||||
|
local vim = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- @name setup_pascal
|
||||||
|
-- @param
|
||||||
|
-- @short Verify installation of pascal tools or install them.
|
||||||
|
local function setup_pascal()
|
||||||
|
local check_ptop = { os.execute("which ptop") }
|
||||||
|
|
||||||
|
-- if return value is 1, get ptop
|
||||||
|
if check_ptop == 1 then
|
||||||
|
os.execute("wget -O ~/.local/bin/ptop https://www.nickr.eu/data/ptop64")
|
||||||
|
os.execute("chmod +x ~/.local/bin/ptop")
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.opt.spell = false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Setup and verify pascal tools when opening a pascal file
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter" }, {
|
||||||
|
pattern = { "*.pas" },
|
||||||
|
callback = setup_pascal,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- @name leave_pascal
|
||||||
|
-- @param
|
||||||
|
-- @short Leave pascal and reverse any changes to my editor defaults
|
||||||
|
local function leave_pascal()
|
||||||
|
vim.opt.spell = true
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufLeave" }, {
|
||||||
|
pattern = { "*.pas" },
|
||||||
|
callback = leave_pascal,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- @name auto_format
|
||||||
|
-- @param
|
||||||
|
-- @short The format function for pascal.
|
||||||
|
local function auto_format()
|
||||||
|
vim.cmd("checktime %")
|
||||||
|
local write_cmd = "ptop -i 4 -c ~/.config/nvim/ptop.conf "
|
||||||
|
.. vim.api.nvim_buf_get_name(0)
|
||||||
|
.. " "
|
||||||
|
.. vim.api.nvim_buf_get_name(0)
|
||||||
|
os.execute(write_cmd)
|
||||||
|
vim.cmd("checktime %")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add formatter command
|
||||||
|
--vim.api.nvim_create_autocmd({ "BufWritePost" }, {
|
||||||
|
-- pattern = { "*.pas" },
|
||||||
|
-- callback = auto_format,
|
||||||
|
--})
|
|
@ -1,31 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
-- Delete area in between the current and next occurrence of the current symbol under cursor.
|
|
||||||
-- use builtin functionality for opening brackets
|
|
||||||
function M.Delete_interval()
|
|
||||||
-- TODO: Think of something
|
|
||||||
end
|
|
||||||
|
|
||||||
-- resize current window using control + 7,8,9,0
|
|
||||||
function M.Resize_Current_Window(change_width, change_height)
|
|
||||||
local width = vim.api.nvim_win_get_width(0)
|
|
||||||
local height = vim.api.nvim_win_get_height(0)
|
|
||||||
|
|
||||||
if width + change_width > 5 then
|
|
||||||
vim.api.nvim_win_set_width(0, width + change_width)
|
|
||||||
end
|
|
||||||
|
|
||||||
if height + change_height > 5 then
|
|
||||||
vim.api.nvim_win_set_height(0, height + change_height)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Keybindings
|
|
||||||
-- 7/8 change width
|
|
||||||
-- 9/0 change height
|
|
||||||
--vim.keymap.set("n", "<C-7>", Resize_Current_Window(-1, 0))
|
|
||||||
--vim.keymap.set("n", "<C-8>", Resize_Current_Window(1, 0))
|
|
||||||
--vim.keymap.set("n", "<C-9>", Resize_Current_Window(0, -1))
|
|
||||||
--vim.keymap.set("n", "<C-0>", Resize_Current_Window(0, 1))
|
|
||||||
|
|
||||||
return M
|
|
|
@ -1,69 +1,60 @@
|
||||||
-- UltiSnips Configuration
|
-- VHDL mode (Vanilla with shell interaction)
|
||||||
vim.g.UltiSnipsExpandTrigger = "<tab>"
|
require("vhdl_mode")
|
||||||
vim.g.UltiSnipsJumpForwardTrigger = "<c-l>"
|
|
||||||
vim.g.UltiSnipsJumpBackwardTrigger = "<c-h>"
|
|
||||||
vim.g.UltiSnipsEditSplit = "vertical"
|
|
||||||
vim.g.UltiSnipsSnippetDirectories = { "~/.config/nvim/UltiSnips" }
|
|
||||||
|
|
||||||
-- NERDTree Config
|
-- Formatter configuration
|
||||||
vim.g.NERDTreeShowHidden = 1
|
require("formatterconfiguration")
|
||||||
|
|
||||||
|
-- Code completion
|
||||||
|
require("code-completion")
|
||||||
|
|
||||||
|
-- Snippet configuration (Ultisnips)
|
||||||
|
require("snippetconfiguration")
|
||||||
|
|
||||||
|
-- ALE configuration
|
||||||
|
require("linterconfiguration")
|
||||||
|
|
||||||
|
-- Navigation and jumping configuration
|
||||||
|
require("navigation")
|
||||||
|
|
||||||
|
-- Mason and builtin lsp configuration
|
||||||
|
require("lspconfiguration")
|
||||||
|
|
||||||
|
-- Pascal mode (supported by plugins)
|
||||||
|
require("pascal_mode")
|
||||||
|
|
||||||
|
-- Ada mode (supported by plugins)
|
||||||
|
require("ada_mode")
|
||||||
|
|
||||||
|
-- Markdown Preview
|
||||||
|
vim.g.mkdp_auto_start = 0
|
||||||
|
vim.g.mkdp_browser = "epiphany"
|
||||||
|
vim.g.mkdp_echo_preview_url = 1
|
||||||
|
|
||||||
|
-- Misc configuration
|
||||||
|
if vim == nil then
|
||||||
|
vim = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Update function and call
|
||||||
|
function Update_Sys()
|
||||||
|
--vim.cmd("TSUpdate")
|
||||||
|
vim.cmd("MasonUpdate")
|
||||||
|
vim.cmd("Lazy sync")
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<M-u>", ":lua Update_Sys()<CR>")
|
||||||
|
|
||||||
-- Lexima
|
-- Lexima
|
||||||
vim.g.lexima_enable_basic_rules = 1
|
vim.g.lexima_enable_basic_rules = 1
|
||||||
vim.g.lexima_enable_newline_rules = 1
|
vim.g.lexima_enable_newline_rules = 1
|
||||||
|
|
||||||
-- Telescope snippet
|
|
||||||
local builtin = require("telescope.builtin")
|
|
||||||
vim.keymap.set("n", "<leader>ff", builtin.find_files, {})
|
|
||||||
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
|
|
||||||
vim.keymap.set("n", "<c-f>", builtin.current_buffer_fuzzy_find, {})
|
|
||||||
vim.keymap.set("n", "<leader>fh", builtin.help_tags, {})
|
|
||||||
vim.keymap.set("n", "<leader>fc", builtin.commands, {})
|
|
||||||
|
|
||||||
-- Telescope + Ultisnips
|
|
||||||
require("telescope").load_extension("ultisnips")
|
|
||||||
vim.keymap.set("n", "<leader>fs", require("telescope").extensions.ultisnips.ultisnips, {})
|
|
||||||
|
|
||||||
-- NERDTree Config
|
|
||||||
vim.g.NERDTreeDirArrowExpandable = "▸"
|
|
||||||
vim.g.NERDTreeDirArrowCollapsible = "▾"
|
|
||||||
|
|
||||||
-- Git-Blame configuration
|
-- Git-Blame configuration
|
||||||
vim.g.gitblame_message_template = " => <author> • <date> • <summary>"
|
vim.g.gitblame_message_template = " => <author> • <date> • <summary>"
|
||||||
vim.g.gitblame_date_format = "%r"
|
vim.g.gitblame_date_format = "%r"
|
||||||
|
|
||||||
-- Intendation basics
|
-- Floating terminal
|
||||||
require("ibl").setup()
|
vim.keymap.set("n", "<C-t>", ":FloatermNew --height=0.9 --width=0.9 --wintype=float --name=terminal <CR>")
|
||||||
|
|
||||||
-- Code completion
|
-- Set default colorscheme
|
||||||
require("code-completion")
|
-- vim.cmd("colo vim-monokai-tasty")
|
||||||
|
vim.cmd("colo vim-monokai-tasty")
|
||||||
-- Mason setup
|
|
||||||
require("mason").setup(require("mason").setup({
|
|
||||||
ui = {
|
|
||||||
icons = {
|
|
||||||
package_installed = "✓",
|
|
||||||
package_pending = "➜",
|
|
||||||
package_uninstalled = "✗",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}))
|
|
||||||
|
|
||||||
require("mason-lspconfig").setup({
|
|
||||||
-- ensure_installed = { "clangd", "cmake", "jdtls", "texlab", "pylsp" },
|
|
||||||
})
|
|
||||||
|
|
||||||
require("mason-lspconfig").setup_handlers({
|
|
||||||
function(clangd)
|
|
||||||
require("lspconfig")[clangd].setup({})
|
|
||||||
end,
|
|
||||||
["als"] = function()
|
|
||||||
require("lspconfig").als.setup({
|
|
||||||
settings = {
|
|
||||||
ada = {
|
|
||||||
projectFile = "default.gpr",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
149
lua/plugins.lua
149
lua/plugins.lua
|
@ -1,10 +1,40 @@
|
||||||
return {
|
return {
|
||||||
|
|
||||||
|
-- Behavior
|
||||||
|
"tpope/vim-surround",
|
||||||
|
"tpope/vim-speeddating",
|
||||||
|
"mg979/vim-visual-multi",
|
||||||
|
"SirVer/UltiSnips",
|
||||||
|
"cohama/lexima.vim",
|
||||||
|
"voldikss/vim-floaterm",
|
||||||
|
"https://git.nickr.eu/yannickreiss/nvim-sourcer.git",
|
||||||
|
|
||||||
|
-- Navigation
|
||||||
"preservim/nerdtree",
|
"preservim/nerdtree",
|
||||||
"Xuyuanp/nerdtree-git-plugin",
|
"Xuyuanp/nerdtree-git-plugin",
|
||||||
"SirVer/UltiSnips",
|
"mihaifm/bufstop",
|
||||||
"tpope/vim-surround",
|
{
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
build = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release",
|
||||||
|
},
|
||||||
|
{ "tzachar/fuzzy.nvim", requires = { "nvim-telescope/telescope-fzf-native.nvim" } },
|
||||||
|
"fhill2/telescope-ultisnips.nvim",
|
||||||
|
"preservim/tagbar",
|
||||||
|
|
||||||
|
-- Visuals
|
||||||
"vim-airline/vim-airline",
|
"vim-airline/vim-airline",
|
||||||
"vim-airline/vim-airline-themes",
|
"vim-airline/vim-airline-themes",
|
||||||
|
"ryanoasis/vim-devicons",
|
||||||
|
"tiagofumo/vim-nerdtree-syntax-highlight",
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
tag = "0.1.5",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
},
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
{ "romgrk/barbar.nvim", wants = "nvim-web-devicons" },
|
||||||
|
"mhinz/vim-startify",
|
||||||
|
"p00f/nvim-ts-rainbow",
|
||||||
{
|
{
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
build = ":TSUpdate",
|
build = ":TSUpdate",
|
||||||
|
@ -16,38 +46,109 @@ return {
|
||||||
sync_install = false,
|
sync_install = false,
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
indent = { enable = true },
|
indent = { enable = true },
|
||||||
|
rainbow = {
|
||||||
|
enable = true,
|
||||||
|
extended_mode = true,
|
||||||
|
max_file_lines = 3000,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
"dense-analysis/ale",
|
||||||
"f-person/git-blame.nvim",
|
"f-person/git-blame.nvim",
|
||||||
"p00f/nvim-ts-rainbow",
|
|
||||||
"cohama/lexima.vim",
|
|
||||||
"ryanoasis/vim-devicons",
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
tag = "0.1.5",
|
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
|
||||||
},
|
|
||||||
"fhill2/telescope-ultisnips.nvim",
|
|
||||||
"hiroakis/cyberspace.vim",
|
|
||||||
"tpope/vim-speeddating",
|
|
||||||
"yannickreiss/nvim-doxyscan",
|
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
{ "romgrk/barbar.nvim", wants = "nvim-web-devicons" },
|
|
||||||
{ "lukas-reineke/indent-blankline.nvim", main = "ibl", opts = {} },
|
|
||||||
"dstein64/vim-startuptime",
|
"dstein64/vim-startuptime",
|
||||||
"mhinz/vim-startify",
|
"hiphish/rainbow-delimiters.nvim",
|
||||||
|
{
|
||||||
|
"iamcco/markdown-preview.nvim",
|
||||||
|
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||||
|
build = "cd app && npm install",
|
||||||
|
init = function()
|
||||||
|
vim.g.mkdp_filetypes = { "markdown" }
|
||||||
|
end,
|
||||||
|
ft = { "markdown" },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Themes
|
||||||
"folke/tokyonight.nvim",
|
"folke/tokyonight.nvim",
|
||||||
"patstockwell/vim-monokai-tasty",
|
"patstockwell/vim-monokai-tasty",
|
||||||
|
"hiroakis/cyberspace.vim",
|
||||||
|
"jaredgorski/spacecamp",
|
||||||
|
{
|
||||||
|
"scottmckendry/cyberdream.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Code completion / Menu
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
"hrsh7th/cmp-nvim-lua",
|
||||||
|
"hrsh7th/cmp-nvim-lsp-signature-help",
|
||||||
|
"hrsh7th/cmp-path",
|
||||||
|
"hrsh7th/cmp-buffer",
|
||||||
|
"hrsh7th/cmp-calc",
|
||||||
|
"hrsh7th/cmp-cmdline",
|
||||||
|
"dmitmel/cmp-cmdline-history",
|
||||||
|
"amarakon/nvim-cmp-lua-latex-symbols",
|
||||||
|
"f3fora/cmp-spell",
|
||||||
|
{ "tzachar/cmp-fuzzy-buffer", requires = { "hrsh7th/nvim-cmp", "tzachar/fuzzy.nvim" } },
|
||||||
|
"quangnguyen30192/cmp-nvim-ultisnips",
|
||||||
|
|
||||||
|
-- LSP / Formatter
|
||||||
"williamboman/mason.nvim",
|
"williamboman/mason.nvim",
|
||||||
"williamboman/mason-lspconfig.nvim",
|
"williamboman/mason-lspconfig.nvim",
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
"mfussenegger/nvim-dap",
|
"mfussenegger/nvim-dap",
|
||||||
"mhartington/formatter.nvim",
|
"mhartington/formatter.nvim",
|
||||||
"mg979/vim-visual-multi",
|
{ "TamaMcGlinn/nvim-lspconfig-ada" },
|
||||||
{ "nvim-telescope/telescope-fzf-native.nvim", run = "make" },
|
"sainnhe/sonokai",
|
||||||
{ "tzachar/fuzzy.nvim", requires = { "nvim-telescope/telescope-fzf-native.nvim" } },
|
|
||||||
"mihaifm/bufstop",
|
-- Plugins to test
|
||||||
"https://git.nickr.eu/yannickreiss/nvim-sourcer.git",
|
"https://git.nickr.eu/yannickreiss/nvim-macrotool.git",
|
||||||
"jayli/vim-easycomplete",
|
|
||||||
|
-- Wiki
|
||||||
|
{
|
||||||
|
"echaya/neowiki.nvim",
|
||||||
|
opts = {
|
||||||
|
wiki_dirs = {
|
||||||
|
-- neowiki.nvim supports both absolute and relative paths
|
||||||
|
{ name = "Personal", path = "~/.wiki" },
|
||||||
|
{ name = "RiscVar", path = "~/Documents/HSRM/riscvar.wiki" },
|
||||||
|
{ name = "Ada/Spark", path = "~/Documents/Science/ada_spark_wiki" },
|
||||||
|
{ name = "FPGA Book", path = "~/Documents/Science/FPGA_Design" },
|
||||||
|
{ name = "Spark-Shell", path = "~/Documents/Programming/spark/spark_shell/spark_shell.wiki" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>ww", "<cmd>lua require('neowiki').open_wiki()<cr>", desc = "Open Wiki" },
|
||||||
|
{ "<leader>wW", "<cmd>lua require('neowiki').open_wiki_floating()<cr>", desc = "Open Floating Wiki" },
|
||||||
|
{ "<leader>wT", "<cmd>lua require('neowiki').open_wiki_new_tab()<cr>", desc = "Open Wiki in Tab" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Lean
|
||||||
|
{
|
||||||
|
"Julian/lean.nvim",
|
||||||
|
event = { "BufReadPre *.lean", "BufNewFile *.lean" },
|
||||||
|
|
||||||
|
dependencies = {
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
|
||||||
|
-- optional dependencies:
|
||||||
|
|
||||||
|
-- a completion engine
|
||||||
|
-- hrsh7th/nvim-cmp or Saghen/blink.cmp are popular choices
|
||||||
|
|
||||||
|
-- 'nvim-telescope/telescope.nvim', -- for 2 Lean-specific pickers
|
||||||
|
-- 'andymass/vim-matchup', -- for enhanced % motion behavior
|
||||||
|
-- 'andrewradev/switch.vim', -- for switch support
|
||||||
|
-- 'tomtom/tcomment_vim', -- for commenting
|
||||||
|
},
|
||||||
|
|
||||||
|
---@type lean.Config
|
||||||
|
opts = { -- see below for full configuration options
|
||||||
|
mappings = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
vim.g.UltiSnipsExpandTrigger = "<tab>"
|
||||||
|
vim.g.UltiSnipsJumpForwardTrigger = "<c-l>"
|
||||||
|
vim.g.UltiSnipsJumpBackwardTrigger = "<c-h>"
|
||||||
|
vim.g.UltiSnipsEditSplit = "vertical"
|
||||||
|
vim.g.UltiSnipsSnippetDirectories = { "~/.config/nvim/UltiSnips" }
|
|
@ -1,14 +1,12 @@
|
||||||
-- in tools.lua
|
-- in tools.lua
|
||||||
local api = vim.api
|
local api = vim.api
|
||||||
|
|
||||||
local M = {};
|
local M = {}
|
||||||
|
|
||||||
function M.makeScratch()
|
function M.makeScratch()
|
||||||
vim.bo[0].buftype=nofile -- set the current buffer's (buffer 0) buftype to nofile
|
vim.bo[0].buftype = nofile -- set the current buffer's (buffer 0) buftype to nofile
|
||||||
vim.bo[0].bufhidden=hide
|
vim.bo[0].bufhidden = hide
|
||||||
vim.bo[0].swapfile=false
|
vim.bo[0].swapfile = false
|
||||||
end;
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
||||||
return M;
|
|
||||||
|
|
|
@ -1,15 +1,105 @@
|
||||||
|
-- Filetypes and compatibility
|
||||||
|
vim.opt.compatible = false
|
||||||
|
vim.cmd("filetype on")
|
||||||
|
vim.cmd("filetype plugin on")
|
||||||
|
vim.cmd("syntax on")
|
||||||
|
|
||||||
|
-- Spell
|
||||||
|
vim.opt.spell = true
|
||||||
|
vim.opt.spl = "en_us,de_de"
|
||||||
|
vim.opt.sps = "fast,timeout:100"
|
||||||
|
|
||||||
|
-- Editor configuration
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
vim.opt.tabstop = 4
|
vim.opt.tabstop = 4
|
||||||
vim.opt.shiftwidth = 4
|
vim.opt.shiftwidth = 4
|
||||||
vim.opt.expandtab = true
|
vim.opt.expandtab = true
|
||||||
vim.opt.showmatch = true
|
vim.opt.splitright = true
|
||||||
|
vim.opt.splitbelow = true
|
||||||
|
vim.opt.relativenumber = false
|
||||||
|
vim.g.mapleader = ","
|
||||||
|
vim.cmd("set clipboard+=unnamedplus")
|
||||||
|
vim.cmd("autocmd! CursorHold,CursorHoldI *.md write")
|
||||||
|
vim.cmd("set autoread")
|
||||||
|
|
||||||
|
-- GUI
|
||||||
vim.opt.cursorline = true
|
vim.opt.cursorline = true
|
||||||
vim.opt.hlsearch = true
|
vim.opt.hlsearch = true
|
||||||
vim.opt.encoding = "UTF-8"
|
vim.opt.encoding = "UTF-8"
|
||||||
vim.g.tex_flavor = "latex"
|
vim.g.tex_flavor = "latex"
|
||||||
vim.opt.conceallevel = 2
|
vim.opt.conceallevel = 2
|
||||||
vim.opt.guifont = "DroidSansMono Nerd Font 11"
|
vim.opt.showmatch = true
|
||||||
vim.g.mapleader = ","
|
|
||||||
|
|
||||||
-- set color scheme
|
-- set color scheme
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
|
vim.cmd("colorscheme slate")
|
||||||
|
vim.keymap.set("n", "<M-+>", ":colo tokyonight-day<CR>")
|
||||||
|
vim.keymap.set("n", "<M-->", ":colo tokyonight-night<CR>")
|
||||||
|
|
||||||
|
-- vim.opt.mouse = ""
|
||||||
|
|
||||||
|
-- set copy mode
|
||||||
|
vim.keymap.set("n", "<leader>ll", ":set nonumber<cr>")
|
||||||
|
vim.keymap.set("n", "<leader>lm", ":set number<cr>")
|
||||||
|
|
||||||
|
-- switch mode
|
||||||
|
vim.keymap.set("n", "<leader>na", ":set norelativenumber<cr>")
|
||||||
|
vim.keymap.set("n", "<leader>nr", ":set relativenumber<cr>")
|
||||||
|
|
||||||
|
-- Nix mode
|
||||||
|
local nix_interpreter_buffer = -1
|
||||||
|
local nix_interpreter_window = -1
|
||||||
|
|
||||||
|
-- @name run_nix_interpreter
|
||||||
|
-- @param
|
||||||
|
-- @short Run nix and output to a buffer on the right
|
||||||
|
local function run_nix_interpreter()
|
||||||
|
local original_win = vim.api.nvim_get_current_win()
|
||||||
|
vim.cmd("vsplit")
|
||||||
|
nix_interpreter_buffer = vim.api.nvim_create_buf(false, true)
|
||||||
|
vim.api.nvim_win_set_buf(0, nix_interpreter_buffer)
|
||||||
|
nix_interpreter_window = vim.api.nvim_get_current_win()
|
||||||
|
vim.api.nvim_set_current_win(original_win)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- @name update_nix_interpreter
|
||||||
|
-- @param
|
||||||
|
-- @short Run nix enterpreter on that file.
|
||||||
|
local function update_nix_interpreter()
|
||||||
|
local filename = vim.api.nvim_buf_get_name(0)
|
||||||
|
if filename == "" then
|
||||||
|
vim.api.nvim_buf_set_lines(nix_interpreter_buffer, 0, -1, false, {
|
||||||
|
"Error: Current buffer has no file name.",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local cmd = { "nix-instantiate", "--eval", "--strict", filename }
|
||||||
|
local output = vim.fn.systemlist(cmd)
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
table.insert(output, 1, "Error running nix-instantiate:")
|
||||||
|
end
|
||||||
|
vim.api.nvim_buf_set_lines(nix_interpreter_buffer, 0, -1, false, output)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- @name close_nix_interpreter
|
||||||
|
-- @param
|
||||||
|
-- @short Closes the window and buffer of the interpreter
|
||||||
|
local function close_nix_interpreter()
|
||||||
|
vim.api.nvim_buf_delete(nix_interpreter_buffer, { unload = true })
|
||||||
|
vim.api.nvim_win_close(nix_interpreter_window, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter" }, {
|
||||||
|
pattern = { "*.nix" },
|
||||||
|
callback = run_nix_interpreter,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
|
||||||
|
pattern = { "*.nix" },
|
||||||
|
callback = update_nix_interpreter,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufLeave" }, {
|
||||||
|
pattern = { "*.nix" },
|
||||||
|
callback = close_nix_interpreter,
|
||||||
|
})
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
-- vim dummy assignment for the lsp
|
||||||
|
if vim == nil then
|
||||||
|
local vim = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Setup the formatter for VHDL
|
||||||
|
-- Download for current platform type if not already present
|
||||||
|
local check_formatter = { os.execute("which ~/.local/bin/vhdlfmt") }
|
||||||
|
if check_formatter == 1 then
|
||||||
|
-- setup the formatter here
|
||||||
|
os.execute("wget -O ~/.local/bin/vhdlfmt https://www.nickr.eu/data/vhdlfmt")
|
||||||
|
os.execute("chmod +x ~/.local/bin/vhdlfmt")
|
||||||
|
end
|
|
@ -0,0 +1,98 @@
|
||||||
|
end=crbefore,dindonkey,dindent,crafter,capital
|
||||||
|
[end]=if,then,else,while,with,for,record,try,finally,except,class,object,private,public,protected,published,casevar,colon,equals
|
||||||
|
begin=crbefore,dindonkey,inbytab,crafter,capital
|
||||||
|
[begin]=var,label,const,type
|
||||||
|
if=spaft,gobsym,inbytab,capital
|
||||||
|
then=capital
|
||||||
|
else=crbefore,dindonkey,inbytab,capital
|
||||||
|
[else]=if,then,else
|
||||||
|
proc=dindonkey,spaft,capital
|
||||||
|
[proc]=var,label,const,type
|
||||||
|
var=blinbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[var]=var,label,const,type
|
||||||
|
of=crsupp,spbef,spaft,capital
|
||||||
|
while=spaft,gobsym,inbytab,crafter,capital
|
||||||
|
do=crsupp,spbef,capital
|
||||||
|
case=spaft,gobsym,inbytab,crafter,capital
|
||||||
|
with=spaft,gobsym,inbytab,crafter,capital
|
||||||
|
for=spaft,gobsym,inbytab,crafter,capital
|
||||||
|
repeat=inbytab,crafter,capital
|
||||||
|
until=crbefore,dindonkey,dindent,spaft,gobsym,crafter,capital
|
||||||
|
[until]=if,then,else,while,with,for,colon,equals
|
||||||
|
func=dindonkey,spaft,capital
|
||||||
|
[func]=var,label,const,type
|
||||||
|
label=blinbefore,spaft,inbytab,capital
|
||||||
|
const=blinbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[const]=var,label,const,type
|
||||||
|
type=blinbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[type]=var,label,const,type
|
||||||
|
record=inbyindent,crafter,capital
|
||||||
|
[record]=end
|
||||||
|
string=
|
||||||
|
prog=blinbefore,spaft,capital
|
||||||
|
asm=
|
||||||
|
try=crbefore,inbytab,crafter,capital
|
||||||
|
finally=crbefore,dindent,inbytab,crafter,capital
|
||||||
|
[finally]=try
|
||||||
|
except=crbefore,dindent,inbytab,crafter,capital
|
||||||
|
[except]=try
|
||||||
|
raise=
|
||||||
|
class=inbyindent,capital
|
||||||
|
object=inbyindent,capital
|
||||||
|
constructor=
|
||||||
|
destructor=
|
||||||
|
inherited=
|
||||||
|
property=
|
||||||
|
private=crbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[private]=end,private,public,protected,published
|
||||||
|
public=crbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[public]=end,private,public,protected,published
|
||||||
|
protected=crbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[protected]=end,private,public,protected,published
|
||||||
|
published=crbefore,dindonkey,spaft,inbytab,capital
|
||||||
|
[published]=end,private,public,protected,published
|
||||||
|
initialization=
|
||||||
|
finalization=
|
||||||
|
inline=
|
||||||
|
library=blinbefore,spaft,capital
|
||||||
|
interface=blinbefore,crafter,capital
|
||||||
|
implementation=blinbefore,dindonkey,crafter,capital
|
||||||
|
[implementation]=end,var,label,const,type,property
|
||||||
|
read=
|
||||||
|
write=
|
||||||
|
unit=blinbefore,spaft,capital
|
||||||
|
and=
|
||||||
|
arr=
|
||||||
|
div=
|
||||||
|
down=
|
||||||
|
file=
|
||||||
|
goto=
|
||||||
|
in=
|
||||||
|
mod=
|
||||||
|
not=
|
||||||
|
nil=
|
||||||
|
or=
|
||||||
|
set=
|
||||||
|
to=
|
||||||
|
virtual=
|
||||||
|
uses=blinbefore,spaft,capital
|
||||||
|
casevar=spaft,gobsym,inbytab,crafter,capital
|
||||||
|
ofobject=
|
||||||
|
becomes=spbef,spaft,gobsym,capital
|
||||||
|
notequal=
|
||||||
|
lessorequal=
|
||||||
|
greaterorequal=
|
||||||
|
delphicomment=crafter
|
||||||
|
dopencomment=
|
||||||
|
dclosecomment=
|
||||||
|
opencomment=crsupp,capital
|
||||||
|
closecomment=crsupp,capital
|
||||||
|
semicolon=crsupp,dindonkey,crafter,capital
|
||||||
|
[semicolon]=if,then,else,while,with,for,colon,equals
|
||||||
|
colon=inbytab,capital
|
||||||
|
equals=spbef,spaft,inbytab,capital
|
||||||
|
openparen=gobsym,capital
|
||||||
|
closeparen=
|
||||||
|
period=crsupp,capital
|
||||||
|
endoffile=
|
||||||
|
other=
|
|
@ -1,177 +0,0 @@
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import fnmatch
|
|
||||||
import logging
|
|
||||||
import ycm_core
|
|
||||||
import re
|
|
||||||
|
|
||||||
BASE_FLAGS = [
|
|
||||||
'-Wall',
|
|
||||||
'-Wextra',
|
|
||||||
'-Werror',
|
|
||||||
'-Wno-long-long',
|
|
||||||
'-Wno-variadic-macros',
|
|
||||||
'-fexceptions',
|
|
||||||
'-ferror-limit=10000',
|
|
||||||
'-DNDEBUG',
|
|
||||||
'-std=c++11',
|
|
||||||
'-xc++',
|
|
||||||
'-I/usr/lib/',
|
|
||||||
'-I/usr/include/'
|
|
||||||
]
|
|
||||||
|
|
||||||
SOURCE_EXTENSIONS = [
|
|
||||||
'.cpp',
|
|
||||||
'.cxx',
|
|
||||||
'.cc',
|
|
||||||
'.c',
|
|
||||||
'.m',
|
|
||||||
'.mm'
|
|
||||||
]
|
|
||||||
|
|
||||||
SOURCE_DIRECTORIES = [
|
|
||||||
'src',
|
|
||||||
'lib'
|
|
||||||
]
|
|
||||||
|
|
||||||
HEADER_EXTENSIONS = [
|
|
||||||
'.h',
|
|
||||||
'.hxx',
|
|
||||||
'.hpp',
|
|
||||||
'.hh'
|
|
||||||
]
|
|
||||||
|
|
||||||
HEADER_DIRECTORIES = [
|
|
||||||
'include'
|
|
||||||
]
|
|
||||||
|
|
||||||
def IsHeaderFile(filename):
|
|
||||||
extension = os.path.splitext(filename)[1]
|
|
||||||
return extension in HEADER_EXTENSIONS
|
|
||||||
|
|
||||||
def GetCompilationInfoForFile(database, filename):
|
|
||||||
if IsHeaderFile(filename):
|
|
||||||
basename = os.path.splitext(filename)[0]
|
|
||||||
for extension in SOURCE_EXTENSIONS:
|
|
||||||
# Get info from the source files by replacing the extension.
|
|
||||||
replacement_file = basename + extension
|
|
||||||
if os.path.exists(replacement_file):
|
|
||||||
compilation_info = database.GetCompilationInfoForFile(replacement_file)
|
|
||||||
if compilation_info.compiler_flags_:
|
|
||||||
return compilation_info
|
|
||||||
# If that wasn't successful, try replacing possible header directory with possible source directories.
|
|
||||||
for header_dir in HEADER_DIRECTORIES:
|
|
||||||
for source_dir in SOURCE_DIRECTORIES:
|
|
||||||
src_file = replacement_file.replace(header_dir, source_dir)
|
|
||||||
if os.path.exists(src_file):
|
|
||||||
compilation_info = database.GetCompilationInfoForFile(src_file)
|
|
||||||
if compilation_info.compiler_flags_:
|
|
||||||
return compilation_info
|
|
||||||
return None
|
|
||||||
return database.GetCompilationInfoForFile(filename)
|
|
||||||
|
|
||||||
def FindNearest(path, target, build_folder):
|
|
||||||
candidate = os.path.join(path, target)
|
|
||||||
if(os.path.isfile(candidate) or os.path.isdir(candidate)):
|
|
||||||
logging.info("Found nearest " + target + " at " + candidate)
|
|
||||||
return candidate;
|
|
||||||
|
|
||||||
parent = os.path.dirname(os.path.abspath(path));
|
|
||||||
if(parent == path):
|
|
||||||
raise RuntimeError("Could not find " + target);
|
|
||||||
|
|
||||||
if(build_folder):
|
|
||||||
candidate = os.path.join(parent, build_folder, target)
|
|
||||||
if(os.path.isfile(candidate) or os.path.isdir(candidate)):
|
|
||||||
logging.info("Found nearest " + target + " in build folder at " + candidate)
|
|
||||||
return candidate;
|
|
||||||
|
|
||||||
return FindNearest(parent, target, build_folder)
|
|
||||||
|
|
||||||
def MakeRelativePathsInFlagsAbsolute(flags, working_directory):
|
|
||||||
if not working_directory:
|
|
||||||
return list(flags)
|
|
||||||
new_flags = []
|
|
||||||
make_next_absolute = False
|
|
||||||
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
|
|
||||||
for flag in flags:
|
|
||||||
new_flag = flag
|
|
||||||
|
|
||||||
if make_next_absolute:
|
|
||||||
make_next_absolute = False
|
|
||||||
if not flag.startswith('/'):
|
|
||||||
new_flag = os.path.join(working_directory, flag)
|
|
||||||
|
|
||||||
for path_flag in path_flags:
|
|
||||||
if flag == path_flag:
|
|
||||||
make_next_absolute = True
|
|
||||||
break
|
|
||||||
|
|
||||||
if flag.startswith(path_flag):
|
|
||||||
path = flag[ len(path_flag): ]
|
|
||||||
new_flag = path_flag + os.path.join(working_directory, path)
|
|
||||||
break
|
|
||||||
|
|
||||||
if new_flag:
|
|
||||||
new_flags.append(new_flag)
|
|
||||||
return new_flags
|
|
||||||
|
|
||||||
|
|
||||||
def FlagsForClangComplete(root):
|
|
||||||
try:
|
|
||||||
clang_complete_path = FindNearest(root, '.clang_complete')
|
|
||||||
clang_complete_flags = open(clang_complete_path, 'r').read().splitlines()
|
|
||||||
return clang_complete_flags
|
|
||||||
except:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def FlagsForInclude(root):
|
|
||||||
try:
|
|
||||||
include_path = FindNearest(root, 'include')
|
|
||||||
flags = []
|
|
||||||
for dirroot, dirnames, filenames in os.walk(include_path):
|
|
||||||
for dir_path in dirnames:
|
|
||||||
real_path = os.path.join(dirroot, dir_path)
|
|
||||||
flags = flags + ["-I" + real_path]
|
|
||||||
return flags
|
|
||||||
except:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def FlagsForCompilationDatabase(root, filename):
|
|
||||||
try:
|
|
||||||
# Last argument of next function is the name of the build folder for
|
|
||||||
# out of source projects
|
|
||||||
compilation_db_path = FindNearest(root, 'compile_commands.json', 'build')
|
|
||||||
compilation_db_dir = os.path.dirname(compilation_db_path)
|
|
||||||
logging.info("Set compilation database directory to " + compilation_db_dir)
|
|
||||||
compilation_db = ycm_core.CompilationDatabase(compilation_db_dir)
|
|
||||||
if not compilation_db:
|
|
||||||
logging.info("Compilation database file found but unable to load")
|
|
||||||
return None
|
|
||||||
compilation_info = GetCompilationInfoForFile(compilation_db, filename)
|
|
||||||
if not compilation_info:
|
|
||||||
logging.info("No compilation info for " + filename + " in compilation database")
|
|
||||||
return None
|
|
||||||
return MakeRelativePathsInFlagsAbsolute(
|
|
||||||
compilation_info.compiler_flags_,
|
|
||||||
compilation_info.compiler_working_dir_)
|
|
||||||
except:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def FlagsForFile(filename):
|
|
||||||
root = os.path.realpath(filename);
|
|
||||||
compilation_db_flags = FlagsForCompilationDatabase(root, filename)
|
|
||||||
if compilation_db_flags:
|
|
||||||
final_flags = compilation_db_flags
|
|
||||||
else:
|
|
||||||
final_flags = BASE_FLAGS
|
|
||||||
clang_flags = FlagsForClangComplete(root)
|
|
||||||
if clang_flags:
|
|
||||||
final_flags = final_flags + clang_flags
|
|
||||||
include_flags = FlagsForInclude(root)
|
|
||||||
if include_flags:
|
|
||||||
final_flags = final_flags + include_flags
|
|
||||||
return {
|
|
||||||
'flags': final_flags,
|
|
||||||
'do_cache': True
|
|
||||||
}
|
|
|
@ -351,3 +351,30 @@ Instagram
|
||||||
Tablet
|
Tablet
|
||||||
Abschwington
|
Abschwington
|
||||||
BerndDasBot
|
BerndDasBot
|
||||||
|
Frameworks
|
||||||
|
Tuples
|
||||||
|
structs
|
||||||
|
make
|
||||||
|
IoT
|
||||||
|
json
|
||||||
|
Request
|
||||||
|
Dictionary
|
||||||
|
Everything
|
||||||
|
Disclaimer
|
||||||
|
linuxspezifischen
|
||||||
|
linuxspezifischen
|
||||||
|
cron
|
||||||
|
false
|
||||||
|
true
|
||||||
|
boolsche
|
||||||
|
bash
|
||||||
|
zsh
|
||||||
|
sockets
|
||||||
|
requests
|
||||||
|
otwendige
|
||||||
|
ptionale
|
||||||
|
utomatischer
|
||||||
|
anueller
|
||||||
|
nickr
|
||||||
|
eu
|
||||||
|
email
|
||||||
|
|
Binary file not shown.
|
@ -171,3 +171,5 @@ gcc
|
||||||
linux
|
linux
|
||||||
chibicc
|
chibicc
|
||||||
chibi
|
chibi
|
||||||
|
readonly
|
||||||
|
extern
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,32 @@
|
||||||
|
" various tools inside vim
|
||||||
|
function! GetCharUnderCursor()
|
||||||
|
let line = getline('.')
|
||||||
|
let col = col('.')
|
||||||
|
return line[col - 1]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" predefined macros in functions
|
||||||
|
function SpacedLine()
|
||||||
|
normal o
|
||||||
|
normal O
|
||||||
|
normal O
|
||||||
|
normal j
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function SwapWords()
|
||||||
|
normal dw
|
||||||
|
normal e
|
||||||
|
exec 'normal! a '
|
||||||
|
normal p
|
||||||
|
normal l
|
||||||
|
let char = GetCharUnderCursor()
|
||||||
|
if char == ' '
|
||||||
|
normal x
|
||||||
|
endif
|
||||||
|
normal h
|
||||||
|
normal b
|
||||||
|
normal b
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let @o = ':call SpacedLine()
'
|
||||||
|
let @s = ':call SwapWords()
'
|
|
@ -1,103 +0,0 @@
|
||||||
" NERDTree remap
|
|
||||||
let g:NERDTreeDirArrowExpandable = '▸'
|
|
||||||
let g:NERDTreeDirArrowCollapsible = '▾'
|
|
||||||
nmap <C-e> :NERDTreeToggle<CR>
|
|
||||||
|
|
||||||
" open builtin terminal
|
|
||||||
function OpenTerm()
|
|
||||||
vsplit
|
|
||||||
terminal
|
|
||||||
endfunction
|
|
||||||
nnoremap <C-t> :call OpenTerm()<CR>
|
|
||||||
|
|
||||||
" open new files right/below
|
|
||||||
set splitright
|
|
||||||
set splitbelow
|
|
||||||
|
|
||||||
set clipboard+=unnamedplus
|
|
||||||
|
|
||||||
" Autoformat on save
|
|
||||||
augroup FormatAutogroup
|
|
||||||
autocmd!
|
|
||||||
autocmd BufWritePost * FormatWrite
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
" set spellcheck according to Filetype
|
|
||||||
autocmd VimEnter * set spell spelllang=en_us
|
|
||||||
|
|
||||||
function Litde()
|
|
||||||
set spell spelllang=de_de
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function Liten()
|
|
||||||
set spell spelllang=en_us
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <M-e> :call Liten()<CR>
|
|
||||||
nnoremap <M-g> :call Litde()<CR>
|
|
||||||
|
|
||||||
" Theme
|
|
||||||
nnoremap <M-+> :colo github_light_high_contrast<CR>
|
|
||||||
nnoremap <M--> :colo default<CR>
|
|
||||||
|
|
||||||
" Fuzzy finder
|
|
||||||
nnoremap <C-f> :Lines<CR>
|
|
||||||
|
|
||||||
function RestoreSession()
|
|
||||||
if @% == ""
|
|
||||||
source ~/.config/nvim/lastSession.vim
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Git-Blame configuration
|
|
||||||
let g:gitblame_message_template = ' => <author> • <date> • <summary>'
|
|
||||||
let g:gitblame_date_format = '%r'
|
|
||||||
|
|
||||||
if executable('vhdl-tool')
|
|
||||||
au User lsp_setup call lsp#register_server({
|
|
||||||
\ 'name': 'vhdl-tool',
|
|
||||||
\ 'cmd': {server_info->['vhdl-tool', 'lsp']},
|
|
||||||
\ 'whitelist': ['vhdl'],
|
|
||||||
\ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'vhdltool-config.yaml'))},
|
|
||||||
\ })
|
|
||||||
endif
|
|
||||||
|
|
||||||
autocmd FileType vhdl setlocal omnifunc=lsp#complete
|
|
||||||
|
|
||||||
nnoremap <silent> <C-0> <Cmd>BufferNext<CR>
|
|
||||||
|
|
||||||
" update function and call
|
|
||||||
function Update_Sys()
|
|
||||||
PackerSync
|
|
||||||
TSUpdate
|
|
||||||
MasonUpdate
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <M-u> :call Update_Sys()<CR>
|
|
||||||
|
|
||||||
" Call build function
|
|
||||||
function! Build()
|
|
||||||
let l:filetype = &filetype
|
|
||||||
|
|
||||||
if l:filetype == 'c' || l:filetype == 'cpp' || l:filetype == 'h' || l:filetype == 'hpp'
|
|
||||||
execute 'make'
|
|
||||||
elseif l:filetype == 'py' || l:filetype == 'python'
|
|
||||||
execute '!python3 %'
|
|
||||||
elseif l:filetype == 'tex'
|
|
||||||
execute '!lualatex % < /dev/null'
|
|
||||||
elseif l:filetype == 'rs'
|
|
||||||
execute 'cargo run'
|
|
||||||
elseif l:filetype == 'S'
|
|
||||||
execute 'make'
|
|
||||||
elseif l:filetype == 'verilog'
|
|
||||||
execute 'verilator --binary %'
|
|
||||||
elseif l:filetype == 'rust'
|
|
||||||
execute 'cargo run'
|
|
||||||
else
|
|
||||||
echo "Unsupported file type: " . l:filetype
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <C-b> :call Build()<CR>
|
|
||||||
nnoremap <M-w> :bdelete<CR>
|
|
||||||
nnoremap <C-y> :b#<CR>
|
|
|
@ -1,47 +0,0 @@
|
||||||
" NERDTree remap
|
|
||||||
nmap <C-e> :NERDTreeToggle<CR>
|
|
||||||
|
|
||||||
" Autoformat on save
|
|
||||||
augroup FormatAutogroup
|
|
||||||
autocmd!
|
|
||||||
autocmd BufWritePost * FormatWrite
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
nnoremap <silent> <C-0> <Cmd>BufferNext<CR>
|
|
||||||
|
|
||||||
" update function and call
|
|
||||||
function Update_Sys()
|
|
||||||
Lazy sync
|
|
||||||
TSUpdate
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <M-u> :call Update_Sys()<CR>
|
|
||||||
|
|
||||||
" Call build function
|
|
||||||
function! Build()
|
|
||||||
let l:filetype = &filetype
|
|
||||||
|
|
||||||
if l:filetype == 'c' || l:filetype == 'cpp' || l:filetype == 'h' || l:filetype == 'hpp'
|
|
||||||
execute '!make'
|
|
||||||
elseif l:filetype == 'py' || l:filetype == 'python'
|
|
||||||
execute '!python3 %'
|
|
||||||
elseif l:filetype == 'tex'
|
|
||||||
execute '!lualatex % < /dev/null'
|
|
||||||
elseif l:filetype == 'rs'
|
|
||||||
execute 'cargo run'
|
|
||||||
elseif l:filetype == 'S'
|
|
||||||
execute '!make'
|
|
||||||
elseif l:filetype == 'verilog'
|
|
||||||
execute '!verilator --binary %'
|
|
||||||
elseif l:filetype == 'rust'
|
|
||||||
execute '!cargo run'
|
|
||||||
elseif l:filetype == 'markdown'
|
|
||||||
execute '!okular %&'
|
|
||||||
else
|
|
||||||
echo "Unsupported file type: " . l:filetype
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <C-b> :call Build()<CR>
|
|
||||||
nnoremap <M-w> :bdelete<CR>
|
|
||||||
nnoremap <C-y> :BufstopFast<CR>
|
|
|
@ -1,43 +0,0 @@
|
||||||
set nocompatible
|
|
||||||
filetype on
|
|
||||||
filetype plugin on
|
|
||||||
syntax on
|
|
||||||
|
|
||||||
colorscheme vim-monokai-tasty
|
|
||||||
|
|
||||||
" open builtin terminal
|
|
||||||
function OpenTerm()
|
|
||||||
10 split
|
|
||||||
terminal
|
|
||||||
endfunction
|
|
||||||
nnoremap <C-t> :call OpenTerm()<CR>
|
|
||||||
|
|
||||||
set splitright
|
|
||||||
set splitbelow
|
|
||||||
|
|
||||||
set clipboard+=unnamedplus
|
|
||||||
|
|
||||||
" set spellcheck according to Filetype
|
|
||||||
autocmd VimEnter * set spell spelllang=en_us
|
|
||||||
|
|
||||||
function Litde()
|
|
||||||
set spell spelllang=de_de
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function Liten()
|
|
||||||
set spell spelllang=en_us
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <M-e> :call Liten()<CR>
|
|
||||||
nnoremap <M-g> :call Litde()<CR>
|
|
||||||
|
|
||||||
" Theme
|
|
||||||
nnoremap <M-+> :colo tokyonight-day<CR>
|
|
||||||
nnoremap <M--> :colo tokyonight-night<CR>
|
|
||||||
|
|
||||||
" Try transparent nvim
|
|
||||||
highlight Normal guibg=none
|
|
||||||
highlight NonText guibg=none
|
|
||||||
highlight Normal ctermbg=none
|
|
||||||
highlight NonText ctermbg=none
|
|
||||||
|
|
Loading…
Reference in New Issue