initial commit
This commit is contained in:
commit
23d4795228
99 changed files with 6691 additions and 0 deletions
19
config/nvim/luasnippets/c.lua
Normal file
19
config/nvim/luasnippets/c.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
return {
|
||||
s('/* ', fmt('/* {} */', { i(1) })),
|
||||
s('pr', fmt('printf("{}", {});', { i(1), i(2) })),
|
||||
s(
|
||||
'main',
|
||||
fmt(
|
||||
[[
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void) {{
|
||||
{}
|
||||
|
||||
return 0;
|
||||
}}
|
||||
]],
|
||||
{ i(1) }
|
||||
)
|
||||
),
|
||||
}
|
||||
179
config/nvim/luasnippets/cpp.lua
Normal file
179
config/nvim/luasnippets/cpp.lua
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
local ls = require('luasnip')
|
||||
local s, i, fmt = ls.snippet, ls.insert_node, require('luasnip.extras.fmt').fmt
|
||||
|
||||
local cppsnippets = {}
|
||||
|
||||
local template = [=[#include <bits/stdc++.h> // {{{{{{
|
||||
|
||||
#include <version>
|
||||
#ifdef __cpp_lib_ranges_enumerate
|
||||
#include <ranges>
|
||||
namespace rv = std::views;
|
||||
namespace rs = std::ranges;
|
||||
#endif
|
||||
|
||||
#pragma GCC optimize("O2,unroll-loops")
|
||||
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
|
||||
|
||||
using namespace std;
|
||||
|
||||
using i32 = int32_t;
|
||||
using u32 = uint32_t;
|
||||
using i64 = int64_t;
|
||||
using u64 = uint64_t;
|
||||
using f64 = double;
|
||||
using f128 = long double;
|
||||
|
||||
#if __cplusplus >= 202002L
|
||||
template <typename T>
|
||||
constexpr T MIN = std::numeric_limits<T>::min();
|
||||
|
||||
template <typename T>
|
||||
constexpr T MAX = std::numeric_limits<T>::max();
|
||||
#endif
|
||||
|
||||
#ifdef LOCAL
|
||||
#define db(...) std::print(__VA_ARGS__)
|
||||
#define dbln(...) std::println(__VA_ARGS__)
|
||||
#else
|
||||
#define db(...)
|
||||
#define dbln(...)
|
||||
#endif
|
||||
// }}}}}}]=]
|
||||
|
||||
-- utility snippets
|
||||
for _, snippet in ipairs({
|
||||
s('in', fmt('#include {}', { i(1) })),
|
||||
s(
|
||||
'main',
|
||||
fmt(
|
||||
[[#include <iostream>
|
||||
|
||||
int main() {{
|
||||
{}
|
||||
|
||||
return 0;
|
||||
}}]],
|
||||
{ i(1) }
|
||||
)
|
||||
),
|
||||
s('pr', fmt('std::cout << {}', { i(1) })),
|
||||
s('s', fmt('std::{}', { i(1) })),
|
||||
s(
|
||||
'pbds',
|
||||
fmt(
|
||||
[[
|
||||
#include <ext/pb_ds/assoc_container.hpp>
|
||||
#include <ext/pb_ds/tree_policy.hpp>
|
||||
|
||||
namespace pbds = __gnu_pbds;
|
||||
|
||||
template <class T>
|
||||
using hashset = pbds::gp_hash_table<T, pbds::null_type>;
|
||||
|
||||
template <class K, class V>
|
||||
using hashmap = pbds::gp_hash_table<K, V>;
|
||||
|
||||
template <class K, class V>
|
||||
using multitreemap =
|
||||
pbds::tree<K, V, less_equal<K>, pbds::rb_tree_tag,
|
||||
pbds::tree_order_statistics_node_update>;
|
||||
|
||||
template <class T>
|
||||
using treeset =
|
||||
pbds::tree<T, pbds::null_type, less<T>, pbds::rb_tree_tag,
|
||||
pbds::tree_order_statistics_node_update>;
|
||||
|
||||
template <class K, class V>
|
||||
using treemap =
|
||||
pbds::tree<K, V, less<K>, pbds::rb_tree_tag,
|
||||
pbds::tree_order_statistics_node_update>;
|
||||
|
||||
template <class T>
|
||||
using treemultiset =
|
||||
pbds::tree<T, pbds::null_type, less_equal<T>, pbds::rb_tree_tag,
|
||||
pbds::tree_order_statistics_node_update>;
|
||||
]],
|
||||
{}
|
||||
)
|
||||
),
|
||||
}) do
|
||||
table.insert(cppsnippets, snippet)
|
||||
end
|
||||
|
||||
for _, entry in ipairs({
|
||||
{
|
||||
trig = 'codeforces',
|
||||
body = template .. [[
|
||||
|
||||
|
||||
void solve() {{
|
||||
{}
|
||||
}}
|
||||
|
||||
int main() {{ // {{{{{{
|
||||
std::cin.exceptions(std::cin.failbit);
|
||||
#ifdef LOCAL
|
||||
std::cerr.rdbuf(std::cout.rdbuf());
|
||||
std::cout.setf(std::ios::unitbuf);
|
||||
std::cerr.setf(std::ios::unitbuf);
|
||||
#else
|
||||
std::cin.tie(nullptr)->sync_with_stdio(false);
|
||||
#endif
|
||||
u32 tc = 1;
|
||||
std::cin >> tc;
|
||||
for (u32 t = 0; t < tc; ++t) {{
|
||||
solve();
|
||||
}}
|
||||
return 0;
|
||||
}} // vim: set foldmethod=marker foldmarker={{{{{{,}}}}}}]],
|
||||
},
|
||||
{
|
||||
trig = 'atcoder',
|
||||
body = template .. [[
|
||||
|
||||
|
||||
void solve() {{
|
||||
{}
|
||||
}}
|
||||
|
||||
int main() {{ // {{{{{{
|
||||
std::cin.exceptions(std::cin.failbit);
|
||||
#ifdef LOCAL
|
||||
std::cerr.rdbuf(std::cout.rdbuf());
|
||||
std::cout.setf(std::ios::unitbuf);
|
||||
std::cerr.setf(std::ios::unitbuf);
|
||||
#else
|
||||
std::cin.tie(nullptr)->sync_with_stdio(false);
|
||||
#endif
|
||||
solve();
|
||||
return 0;
|
||||
}} // vim: set foldmethod=marker foldmarker={{{{{{,}}}}}}]],
|
||||
},
|
||||
{
|
||||
trig = 'cses',
|
||||
body = template .. [[
|
||||
|
||||
|
||||
void solve() {{
|
||||
{}
|
||||
}}
|
||||
|
||||
int main() {{ // {{{{{{
|
||||
std::cin.exceptions(std::cin.failbit);
|
||||
#ifdef LOCAL
|
||||
std::cerr.rdbuf(std::cout.rdbuf());
|
||||
std::cout.setf(std::ios::unitbuf);
|
||||
std::cerr.setf(std::ios::unitbuf);
|
||||
#else
|
||||
std::cin.tie(nullptr)->sync_with_stdio(false);
|
||||
#endif
|
||||
solve();
|
||||
return 0;
|
||||
}} // vim: set foldmethod=marker foldmarker={{{{{{,}}}}}}]],
|
||||
},
|
||||
}) do
|
||||
table.insert(cppsnippets, s(entry.trig, fmt(entry.body, { i(1) })))
|
||||
end
|
||||
|
||||
return cppsnippets
|
||||
11
config/nvim/luasnippets/html.lua
Normal file
11
config/nvim/luasnippets/html.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
local word = function(index)
|
||||
return f(function(name)
|
||||
return name[1][1]:match('([^ ]*)')
|
||||
end, { index })
|
||||
end
|
||||
|
||||
return {
|
||||
s('<', fmt('<{}>\n\t{}\n</{}>', { i(1), i(2), word(1) })),
|
||||
s('>', fmt('<{}>{}</{}>', { i(1), i(2), word(1) })),
|
||||
s('/', fmt('<{} />', { i(1) })),
|
||||
}
|
||||
14
config/nvim/luasnippets/python.lua
Normal file
14
config/nvim/luasnippets/python.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
return {
|
||||
s(
|
||||
'main',
|
||||
fmt(
|
||||
[[def main() -> None:
|
||||
{}
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
]],
|
||||
{ i(1) }
|
||||
)
|
||||
),
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue