Lucas
1 month ago
commit
8cc59af68e
37 changed files with 72435 additions and 0 deletions
@ -0,0 +1,20 @@ |
|||||
|
{ |
||||
|
"neodev": { |
||||
|
"library": { |
||||
|
"enabled": true, |
||||
|
"plugins": true |
||||
|
} |
||||
|
}, |
||||
|
"neoconf": { |
||||
|
"plugins": { |
||||
|
"lua_ls": { |
||||
|
"enabled": true |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"lspconfig": { |
||||
|
"lua_ls": { |
||||
|
"Lua.format.enable": false |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
column_width = 120 |
||||
|
line_endings = "Unix" |
||||
|
indent_type = "Spaces" |
||||
|
indent_width = 2 |
||||
|
quote_style = "AutoPreferDouble" |
||||
|
call_parentheses = "None" |
||||
|
collapse_simple_statement = "Always" |
@ -0,0 +1,34 @@ |
|||||
|
# AstroNvim Template |
||||
|
|
||||
|
**NOTE:** This is for AstroNvim v4+ |
||||
|
|
||||
|
A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim) |
||||
|
|
||||
|
## 🛠️ Installation |
||||
|
|
||||
|
#### Make a backup of your current nvim and shared folder |
||||
|
|
||||
|
```shell |
||||
|
mv ~/.config/nvim ~/.config/nvim.bak |
||||
|
mv ~/.local/share/nvim ~/.local/share/nvim.bak |
||||
|
mv ~/.local/state/nvim ~/.local/state/nvim.bak |
||||
|
mv ~/.cache/nvim ~/.cache/nvim.bak |
||||
|
``` |
||||
|
|
||||
|
#### Create a new user repository from this template |
||||
|
|
||||
|
Press the "Use this template" button above to create a new repository to store your user configuration. |
||||
|
|
||||
|
You can also just clone this repository directly if you do not want to track your user configuration in GitHub. |
||||
|
|
||||
|
#### Clone the repository |
||||
|
|
||||
|
```shell |
||||
|
git clone https://git.lucasf.dev/public/kurunvim.git ~/.config/nvim |
||||
|
``` |
||||
|
|
||||
|
#### Start Neovim |
||||
|
|
||||
|
```shell |
||||
|
nvim |
||||
|
``` |
@ -0,0 +1,4 @@ |
|||||
|
local set = vim.opt_local |
||||
|
|
||||
|
set.shiftwidth = 2 |
||||
|
|
@ -0,0 +1,19 @@ |
|||||
|
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution |
||||
|
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk. |
||||
|
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim" |
||||
|
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then |
||||
|
-- stylua: ignore |
||||
|
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) |
||||
|
end |
||||
|
vim.opt.rtp:prepend(lazypath) |
||||
|
|
||||
|
-- validate that lazy is available |
||||
|
if not pcall(require, "lazy") then |
||||
|
-- stylua: ignore |
||||
|
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) |
||||
|
vim.fn.getchar() |
||||
|
vim.cmd.quit() |
||||
|
end |
||||
|
|
||||
|
require "lazy_setup" |
||||
|
require "polish" |
@ -0,0 +1,76 @@ |
|||||
|
{ |
||||
|
"AstroNvim": { "branch": "main", "commit": "c82ef216d0776b19cd7229fb916c4b30fbe3484c" }, |
||||
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, |
||||
|
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, |
||||
|
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, |
||||
|
"aerial.nvim": { "branch": "master", "commit": "9c29a1a66eb31384888e413e510ba72496e06770" }, |
||||
|
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, |
||||
|
"astrocore": { "branch": "main", "commit": "0fcaac66d115948605c14eaf45a41d3923eaafeb" }, |
||||
|
"astrolsp": { "branch": "main", "commit": "2f6b0a4059775a1dac011d2944dd41fd4a8fe7a8" }, |
||||
|
"astrotheme": { "branch": "main", "commit": "e612ee356bbf42dc28f181cb966730ed3befb1ab" }, |
||||
|
"astroui": { "branch": "main", "commit": "58c4130bd15c28827eab19dcc20fb9483bf5cad8" }, |
||||
|
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" }, |
||||
|
"cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" }, |
||||
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, |
||||
|
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" }, |
||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, |
||||
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, |
||||
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, |
||||
|
"dial.nvim": { "branch": "master", "commit": "46b4375e84e8eb771129bff6b2b1e47746601ef9" }, |
||||
|
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, |
||||
|
"django.nvim": { "branch": "master", "commit": "5931cb012f7bcbed7935cb69f70e608acda1ff4b" }, |
||||
|
"dressing.nvim": { "branch": "master", "commit": "43b8f74e0b1e3f41e51f640f8efa3bcd401cea0d" }, |
||||
|
"emmet-vim": { "branch": "master", "commit": "6c511a8d7d2863066f32e25543e2bb99d505172c" }, |
||||
|
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, |
||||
|
"gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" }, |
||||
|
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" }, |
||||
|
"heirline.nvim": { "branch": "master", "commit": "cc359b628266cb9a84b2d71c883f2b99e16473a0" }, |
||||
|
"indent-blankline.nvim": { "branch": "master", "commit": "7871a88056f7144defca9c931e311a3134c5d509" }, |
||||
|
"lazy.nvim": { "branch": "main", "commit": "7c493713bc2cb392706866eeba53aaef6c8e9fc6" }, |
||||
|
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" }, |
||||
|
"lspkind.nvim": { "branch": "master", "commit": "a700f1436d4a938b1a1a93c9962dc796afbaef4d" }, |
||||
|
"luvit-meta": { "branch": "main", "commit": "57d464c4acb5c2e66bd4145060f5dc9e96a7bbb7" }, |
||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "43894adcf10bb1190c2184bd7c1750e8ea2b3dce" }, |
||||
|
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" }, |
||||
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, |
||||
|
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, |
||||
|
"mini.bufremove": { "branch": "main", "commit": "1ee294a97e091d3cf967974df622c0d887890dc2" }, |
||||
|
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" }, |
||||
|
"neoconf.nvim": { "branch": "main", "commit": "24db302fe23c4c07233e4b9d79ebe1dd2d3c975b" }, |
||||
|
"neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" }, |
||||
|
"neotest-python": { "branch": "master", "commit": "a2861ab3c9a0bf75a56b11835c2bfc8270f5be7e" }, |
||||
|
"none-ls.nvim": { "branch": "main", "commit": "1f2bf17eddfdd45aed254b6922c6c68b933dba9e" }, |
||||
|
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" }, |
||||
|
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, |
||||
|
"nvim-cmp": { "branch": "main", "commit": "be7bd4c5f860c79da97af3a26d489af50babfd4b" }, |
||||
|
"nvim-colorizer.lua": { "branch": "master", "commit": "4acf88d31b3a7a1a7f31e9c30bf2b23c6313abdb" }, |
||||
|
"nvim-dap": { "branch": "master", "commit": "cc92b054720a96170eca6bd9bdedd43d2b0a7a8a" }, |
||||
|
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" }, |
||||
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" }, |
||||
|
"nvim-lspconfig": { "branch": "master", "commit": "dafd61d6533bd90ecf6e2a3a972298fdddc74d82" }, |
||||
|
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, |
||||
|
"nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" }, |
||||
|
"nvim-tabletops": { "branch": "master", "commit": "746b7c7812a2c5bfb5c358fe9d54666eb091cb56" }, |
||||
|
"nvim-treesitter": { "branch": "master", "commit": "7930b5f983c37bb07c9af27274334a7adcb3e5af" }, |
||||
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" }, |
||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, |
||||
|
"nvim-ts-context-commentstring": { "branch": "main", "commit": "9c74db656c3d0b1c4392fc89a016b1910539e7c0" }, |
||||
|
"nvim-ufo": { "branch": "main", "commit": "a5390706f510d39951dd581f6d2a972741b3fa26" }, |
||||
|
"nvim-web-devicons": { "branch": "master", "commit": "f09be61d05bebcba85bb47be1931322d51b95644" }, |
||||
|
"nvim-window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" }, |
||||
|
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, |
||||
|
"promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" }, |
||||
|
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" }, |
||||
|
"smart-splits.nvim": { "branch": "master", "commit": "00fba7a0e912a8d82da91a3b6b11d641fa500bd8" }, |
||||
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, |
||||
|
"telescope.nvim": { "branch": "master", "commit": "85922dde3767e01d42a08e750a773effbffaea3e" }, |
||||
|
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, |
||||
|
"toggleterm.nvim": { "branch": "main", "commit": "022ff5594acccc8d90d2e46dc43994f7722ebdf7" }, |
||||
|
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" }, |
||||
|
"undotree": { "branch": "master", "commit": "78b5241191852ffa9bb5da5ff2ee033160798c3b" }, |
||||
|
"vim-dadbod": { "branch": "master", "commit": "fe5a55e92b2dded7c404006147ef97fb073d8b1b" }, |
||||
|
"vim-dadbod-ui": { "branch": "master", "commit": "7f89265a84fc003ccfa500fd99b9fea9db2c75c7" }, |
||||
|
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" }, |
||||
|
"vim-test": { "branch": "master", "commit": "8872ec0f788af934386b2aef0cd28a5c2b923146" }, |
||||
|
"which-key.nvim": { "branch": "main", "commit": "9b365a6428a9633e3eeb34dbef1b791511c54f70" } |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
[*.lua] |
||||
|
indent_style = space |
||||
|
indent_size = 2 |
@ -0,0 +1,12 @@ |
|||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE |
||||
|
|
||||
|
-- AstroCommunity: import any community modules here |
||||
|
-- We import this file in `lazy_setup.lua` before the `plugins/` folder. |
||||
|
-- This guarantees that the specs are processed before any user plugins. |
||||
|
|
||||
|
---@type LazySpec |
||||
|
return { |
||||
|
"AstroNvim/astrocommunity", |
||||
|
{ import = "astrocommunity.pack.lua" }, |
||||
|
-- import/override with your plugins folder |
||||
|
} |
@ -0,0 +1,163 @@ |
|||||
|
local tele_status_ok, _ = pcall(require, "telescope") |
||||
|
if not tele_status_ok then return end |
||||
|
|
||||
|
local plen_status_ok, _ = pcall(require, "plenary") |
||||
|
if not plen_status_ok then return end |
||||
|
|
||||
|
local term_status_ok, _ = pcall(require, "toggleterm") |
||||
|
if not term_status_ok then return end |
||||
|
|
||||
|
local M = {} |
||||
|
M.terminals = {} |
||||
|
|
||||
|
local utils = require "telescope.utils" |
||||
|
local pickers = require "telescope.pickers" |
||||
|
local finders = require "telescope.finders" |
||||
|
local make_entry = require "telescope.make_entry" |
||||
|
local conf = require("telescope.config").values |
||||
|
local Path = require "plenary.path" |
||||
|
local toggleterm = require "toggleterm" |
||||
|
local terms = require "toggleterm.terminal" |
||||
|
|
||||
|
local function GetBaseDir(filePath) |
||||
|
local sep = Path.path.sep |
||||
|
if filePath:sub(1, #sep) == sep then |
||||
|
return "" |
||||
|
else |
||||
|
return filePath:sub(1, string.find(filePath, sep)) |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
local function file_exists(name) |
||||
|
local f = io.open(name, "r") |
||||
|
if f ~= nil then |
||||
|
io.close(f) |
||||
|
return true |
||||
|
else |
||||
|
return false |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
function GetBaseName(filePath) |
||||
|
if filePath:sub(-1) == Path.path.sep then filePath = filePath:sub(1, -2) end |
||||
|
local pos = string.find(filePath, Path.path.sep) |
||||
|
while pos ~= nil do |
||||
|
filePath = string.sub(filePath, pos + 1) |
||||
|
pos = string.find(filePath, Path.path.sep) |
||||
|
end |
||||
|
return filePath |
||||
|
end |
||||
|
|
||||
|
local function buf_in_cwd(bufname, cwd) |
||||
|
if cwd:sub(-1) ~= Path.path.sep then cwd = cwd .. Path.path.sep end |
||||
|
local bufname_prefix = bufname:sub(1, #cwd) |
||||
|
return bufname_prefix == cwd |
||||
|
end |
||||
|
|
||||
|
M.oldfiles = function(opts) |
||||
|
local current_buffer = vim.api.nvim_get_current_buf() |
||||
|
local current_file = vim.api.nvim_buf_get_name(current_buffer) |
||||
|
local results = {} |
||||
|
|
||||
|
for _, buffer in ipairs(vim.split(vim.fn.execute ":buffers! t", "\n")) do |
||||
|
local match = tonumber(string.match(buffer, "%s*(%d+)")) |
||||
|
local open_by_lsp = string.match(buffer, "line 0$") |
||||
|
if match and not open_by_lsp then |
||||
|
local file = vim.api.nvim_buf_get_name(match) |
||||
|
if vim.loop.fs_stat(file) and match ~= current_buffer then table.insert(results, file) end |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
for _, file in ipairs(vim.v.oldfiles) do |
||||
|
local file_stat = vim.loop.fs_stat(file) |
||||
|
if file_stat and file_stat.type == "file" and not vim.tbl_contains(results, file) and file ~= current_file then |
||||
|
if GetBaseName(file) ~= ".env" then table.insert(results, file) end |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
local cwd = vim.loop.cwd() |
||||
|
cwd = cwd .. utils.get_separator() |
||||
|
results = vim.tbl_filter(function(file) return buf_in_cwd(file, cwd) end, results) |
||||
|
|
||||
|
pickers |
||||
|
.new(opts, { |
||||
|
prompt_title = "Oldfiles from " .. GetBaseName(cwd), |
||||
|
finder = finders.new_table { |
||||
|
results = results, |
||||
|
entry_maker = make_entry.gen_from_file(opts), |
||||
|
}, |
||||
|
sorter = conf.file_sorter(opts), |
||||
|
previewer = conf.file_previewer(opts), |
||||
|
}) |
||||
|
:find() |
||||
|
end |
||||
|
|
||||
|
function M.select_terminal() |
||||
|
local terminals = terms.get_all() |
||||
|
if #terminals > 0 then |
||||
|
vim.ui.select(terminals, { |
||||
|
prompt = "Please select a terminal to open (or focus): ", |
||||
|
format_item = function(term) return term.id .. ": " .. term:_display_name() end, |
||||
|
}, function(term) |
||||
|
if not term then return end |
||||
|
if term:is_open() then |
||||
|
term:focus() |
||||
|
else |
||||
|
term:open() |
||||
|
end |
||||
|
end) |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
function M.toggle_term() |
||||
|
if #terms.get_all() > 0 then terms.get_last_focused():toggle() end |
||||
|
end |
||||
|
|
||||
|
function M.term_horizontal() |
||||
|
local term, _ = terms.get_or_create_term(8, "horizontal", "horizontal") |
||||
|
term:toggle(8, "horizontal") |
||||
|
end |
||||
|
|
||||
|
function M.term_vertical() |
||||
|
local term, _ = terms.get_or_create_term(9, "vertical", "vertical") |
||||
|
term:toggle(80, "vertical") |
||||
|
end |
||||
|
|
||||
|
function M.term_float() |
||||
|
local term, _ = terms.get_or_create_term(11, "float", "float") |
||||
|
term:toggle(0, "float") |
||||
|
end |
||||
|
|
||||
|
function M.openMDfile(executable) |
||||
|
local file = vim.api.nvim_buf_get_name(0) |
||||
|
if executable then M.MDexecutable = executable end |
||||
|
vim.api.nvim_command("terminal flatpak run " .. M.MDexecutable .. " " .. file) |
||||
|
end |
||||
|
|
||||
|
function M.compile_sass() |
||||
|
local term_num = 12 |
||||
|
local term = terms.get(term_num, true) |
||||
|
local dist = "dist/css" |
||||
|
local file_name = "compile_at" |
||||
|
|
||||
|
if file_exists(file_name) then |
||||
|
local file_ = io.open(file_name, "r") |
||||
|
|
||||
|
if file_ ~= nil then |
||||
|
dist = file_:read() |
||||
|
file_:close() |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
local cmd = "node ~/.local/lib/node_modules/sass/sass.js --watch sass:" .. dist .. " -s compressed --no-source-map" |
||||
|
|
||||
|
if term then |
||||
|
term:toggle() |
||||
|
else |
||||
|
toggleterm.exec(cmd, term_num, 100, ".", "float", "compile_sass") |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
return M |
||||
|
|
||||
|
-- vim: ts=4 sts=4 sw=4 expandtab |
@ -0,0 +1,32 @@ |
|||||
|
require("lazy").setup({ |
||||
|
{ |
||||
|
"AstroNvim/AstroNvim", |
||||
|
version = "^4", -- Remove version tracking to elect for nightly AstroNvim |
||||
|
import = "astronvim.plugins", |
||||
|
opts = { -- AstroNvim options must be set here with the `import` key |
||||
|
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up |
||||
|
maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up |
||||
|
icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) |
||||
|
pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override |
||||
|
update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins |
||||
|
}, |
||||
|
}, |
||||
|
{ import = "community" }, |
||||
|
{ import = "plugins" }, |
||||
|
} --[[@as LazySpec]], { |
||||
|
-- Configure any other `lazy.nvim` configuration options here |
||||
|
install = { colorscheme = { "astrotheme", "habamax" } }, |
||||
|
ui = { backdrop = 100 }, |
||||
|
performance = { |
||||
|
rtp = { |
||||
|
-- disable some rtp plugins, add more to your liking |
||||
|
disabled_plugins = { |
||||
|
"gzip", |
||||
|
"netrwPlugin", |
||||
|
"tarPlugin", |
||||
|
"tohtml", |
||||
|
"zipPlugin", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
} --[[@as LazyConfig]]) |
@ -0,0 +1,89 @@ |
|||||
|
local listchars = function() vim.opt.listchars:append "space:⋅" end |
||||
|
|
||||
|
---@type LazySpec |
||||
|
return { |
||||
|
"AstroNvim/astrocore", |
||||
|
---@type AstroCoreOpts |
||||
|
opts = { |
||||
|
features = { |
||||
|
large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter |
||||
|
autopairs = true, -- enable autopairs at start |
||||
|
cmp = true, -- enable completion at start |
||||
|
diagnostics_mode = 3, -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on) |
||||
|
highlighturl = true, -- highlight URLs at start |
||||
|
notifications = true, -- enable notifications at start |
||||
|
}, |
||||
|
diagnostics = { |
||||
|
virtual_text = true, |
||||
|
underline = true, |
||||
|
}, |
||||
|
options = { |
||||
|
opt = { -- vim.opt.<key> |
||||
|
relativenumber = true, -- sets vim.opt.relativenumber |
||||
|
number = true, -- sets vim.opt.number |
||||
|
spell = false, -- sets vim.opt.spell |
||||
|
signcolumn = "yes", -- sets vim.opt.signcolumn to yes |
||||
|
wrap = false, -- sets vim.opt.wrap |
||||
|
rnu = true, |
||||
|
autoindent = true, |
||||
|
list = true, |
||||
|
timeoutlen = 100, |
||||
|
updatetime = 50, |
||||
|
tabstop = 4, |
||||
|
softtabstop = 4, |
||||
|
shiftwidth = 4, |
||||
|
}, |
||||
|
g = { -- vim.g.<key> |
||||
|
autoformat_enabled = true, -- enable or disable auto formatting at start (lsp.formatting.format_on_save must be enabled) |
||||
|
cmp_enabled = true, -- enable completion at start |
||||
|
autopairs_enabled = true, -- enable autopairs at start |
||||
|
diagnostics_mode = 3, -- set the visibility of diagnostics in the UI (0=off, 1=only show in status line, 2=virtual text off, 3=all on) |
||||
|
icons_enabled = true, -- disable icons in the UI (disable if no nerd font is available, requires :PackerSync after changing) |
||||
|
ui_notifications_enabled = true, -- disable notifications when toggling UI elements |
||||
|
}, |
||||
|
listchars(), -- comment this line if you don't want to render dots for empty spaces |
||||
|
}, |
||||
|
mappings = { |
||||
|
-- first key is the mode |
||||
|
n = { |
||||
|
-- navigate buffer tabs |
||||
|
["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" }, |
||||
|
["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" }, |
||||
|
["<Leader>bd"] = { |
||||
|
function() |
||||
|
require("astroui.status.heirline").buffer_picker( |
||||
|
function(bufnr) require("astrocore.buffer").close(bufnr) end |
||||
|
) |
||||
|
end, |
||||
|
desc = "Close buffer from tabline", |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
}, |
||||
|
autocmds = { |
||||
|
set_templ_to_format = { |
||||
|
{ |
||||
|
event = { "BufEnter" }, |
||||
|
desc = "Set templ filetype to format", |
||||
|
pattern = "*.templ", |
||||
|
callback = function() vim.bo.filetype = "templ" end, |
||||
|
}, |
||||
|
}, |
||||
|
set_html_to_format = { |
||||
|
{ |
||||
|
event = { "BufReadPost" }, |
||||
|
desc = "Set html filetype to htmldjango format", |
||||
|
pattern = "*.html", |
||||
|
callback = function() vim.bo.filetype = "htmldjango" end, |
||||
|
}, |
||||
|
}, |
||||
|
highlight_yank = { |
||||
|
{ |
||||
|
event = { "TextYankPost" }, |
||||
|
desc = "Highlight on yank", |
||||
|
callback = function() vim.highlight.on_yank() end, |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,99 @@ |
|||||
|
---@type LazySpec |
||||
|
return { |
||||
|
"AstroNvim/astrolsp", |
||||
|
---@type AstroLSPOpts |
||||
|
opts = { |
||||
|
-- Configuration table of features provided by AstroLSP |
||||
|
features = { |
||||
|
autoformat = true, -- enable or disable auto formatting on start |
||||
|
codelens = true, -- enable/disable codelens refresh on start |
||||
|
inlay_hints = false, -- enable/disable inlay hints on start |
||||
|
semantic_tokens = true, -- enable/disable semantic token highlighting |
||||
|
}, |
||||
|
-- customize lsp formatting options |
||||
|
formatting = { |
||||
|
-- control auto formatting on save |
||||
|
format_on_save = { |
||||
|
enabled = true, -- enable or disable format on save globally |
||||
|
allow_filetypes = { -- enable format on save for specified filetypes only |
||||
|
"go", |
||||
|
"python", |
||||
|
"rust", |
||||
|
}, |
||||
|
ignore_filetypes = { -- disable format on save for specified filetypes |
||||
|
-- "python", |
||||
|
"htmldjango", |
||||
|
"html", |
||||
|
}, |
||||
|
}, |
||||
|
disabled = { -- disable formatting capabilities for the listed language servers |
||||
|
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code |
||||
|
-- "lua_ls", |
||||
|
}, |
||||
|
timeout_ms = 10000, -- default format timeout |
||||
|
-- filter = function(client) -- fully override the default formatting function |
||||
|
-- return true |
||||
|
-- end |
||||
|
}, |
||||
|
-- enable servers that you already have installed without mason |
||||
|
servers = { |
||||
|
-- "pyright" |
||||
|
}, |
||||
|
-- customize language server configuration options passed to `lspconfig` |
||||
|
---@diagnostic disable: missing-fields |
||||
|
config = { |
||||
|
-- clangd = { capabilities = { offsetEncoding = "utf-8" } }, |
||||
|
}, |
||||
|
-- customize how language servers are attached |
||||
|
handlers = { |
||||
|
-- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server |
||||
|
-- function(server, opts) require("lspconfig")[server].setup(opts) end |
||||
|
|
||||
|
-- the key is the server that is being setup with `lspconfig` |
||||
|
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server |
||||
|
-- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed |
||||
|
}, |
||||
|
autocmds = { |
||||
|
lsp_document_highlight = { |
||||
|
cond = "textDocument/documentHighlight", |
||||
|
{ |
||||
|
event = { "CursorHold", "CursorHoldI" }, |
||||
|
desc = "Document Highlighting", |
||||
|
callback = function() vim.lsp.buf.document_highlight() end, |
||||
|
}, |
||||
|
{ |
||||
|
event = { "CursorMoved", "CursorMovedI", "BufLeave" }, |
||||
|
desc = "Document Highlighting Clear", |
||||
|
callback = function() vim.lsp.buf.clear_references() end, |
||||
|
}, |
||||
|
}, |
||||
|
lsp_codelens_refresh = { |
||||
|
cond = "textDocument/codeLens", |
||||
|
{ |
||||
|
event = { "InsertLeave", "BufEnter" }, |
||||
|
desc = "Refresh codelens (buffer)", |
||||
|
callback = function(args) |
||||
|
if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end |
||||
|
end, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
mappings = { |
||||
|
n = { |
||||
|
gD = { |
||||
|
function() vim.lsp.buf.declaration() end, |
||||
|
desc = "Declaration of current symbol", |
||||
|
cond = "textDocument/declaration", |
||||
|
}, |
||||
|
["<Leader>uY"] = { |
||||
|
function() require("astrolsp.toggles").buffer_semantic_tokens() end, |
||||
|
desc = "Toggle LSP semantic highlight (buffer)", |
||||
|
cond = function(client) |
||||
|
return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil |
||||
|
end, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
on_attach = function(client, bufnr) end, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,31 @@ |
|||||
|
return { |
||||
|
"AstroNvim/astroui", |
||||
|
---@type AstroUIOpts |
||||
|
opts = { |
||||
|
-- change colorscheme |
||||
|
colorscheme = "astrodark", |
||||
|
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes |
||||
|
highlights = { |
||||
|
init = { -- this table overrides highlights in all themes |
||||
|
-- Normal = { bg = "#000000" }, |
||||
|
}, |
||||
|
astrodark = { -- a table of overrides/changes when applying the astrotheme theme |
||||
|
-- Normal = { bg = "#000000" }, |
||||
|
}, |
||||
|
}, |
||||
|
-- Icons can be configured throughout the interface |
||||
|
icons = { |
||||
|
-- configure the loading of the lsp in the status line |
||||
|
LSPLoading1 = "⠋", |
||||
|
LSPLoading2 = "⠙", |
||||
|
LSPLoading3 = "⠹", |
||||
|
LSPLoading4 = "⠸", |
||||
|
LSPLoading5 = "⠼", |
||||
|
LSPLoading6 = "⠴", |
||||
|
LSPLoading7 = "⠦", |
||||
|
LSPLoading8 = "⠧", |
||||
|
LSPLoading9 = "⠇", |
||||
|
LSPLoading10 = "⠏", |
||||
|
}, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,10 @@ |
|||||
|
return { |
||||
|
"kristijanhusak/vim-dadbod-ui", |
||||
|
dependencies = { |
||||
|
{ "tpope/vim-dadbod", lazy = true }, |
||||
|
-- { "kristijanhusak/vim-dadbod-completion", lazy = true }, |
||||
|
}, |
||||
|
init = function() |
||||
|
vim.g.db_ui_use_nerd_fonts = 1 |
||||
|
end, |
||||
|
} |
@ -0,0 +1,57 @@ |
|||||
|
return { |
||||
|
{ |
||||
|
"monaqa/dial.nvim", |
||||
|
config = function() |
||||
|
local augend = require "dial.augend" |
||||
|
require("dial.config").augends:register_group { |
||||
|
default = { |
||||
|
augend.constant.new { |
||||
|
elements = { "and", "or" }, |
||||
|
word = true, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "true", "false" }, |
||||
|
word = true, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "True", "False" }, |
||||
|
word = true, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "&&", "||" }, |
||||
|
word = false, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "&", "|" }, |
||||
|
word = false, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "y/n", "n/y" }, |
||||
|
word = false, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "yes", "no" }, |
||||
|
word = false, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "get", "post", "put", "patch", "delete" }, |
||||
|
word = false, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
augend.constant.new { |
||||
|
elements = { "GET", "POST", "PUT", "PATCH", "DELETE" }, |
||||
|
word = false, |
||||
|
cyclic = true, |
||||
|
}, |
||||
|
}, |
||||
|
} |
||||
|
end, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
return { |
||||
|
{ |
||||
|
"https://git.lucasf.dev/public/django.nvim", |
||||
|
config = function() |
||||
|
local django = require("django").setup() |
||||
|
end |
||||
|
} |
||||
|
} |
@ -0,0 +1,133 @@ |
|||||
|
local astro = require "astrocore" |
||||
|
|
||||
|
return { |
||||
|
{ |
||||
|
"AstroNvim/astrocore", |
||||
|
---@type AstroCoreOpts |
||||
|
opts = { |
||||
|
mappings = { |
||||
|
n = { |
||||
|
--essentials |
||||
|
["d"] = { "_d" }, |
||||
|
["<esc>"] = { "<Nop>" }, |
||||
|
["<C-z>"] = { "<Nop>" }, |
||||
|
["G"] = { "Gzz" }, |
||||
|
["<C-t>"] = { "ggVG<cr>", desc = "select all" }, |
||||
|
["<leader>W"] = { "<cmd>w<cr>", desc = "Save" }, |
||||
|
["<S-s>"] = { "ciw", desc = "replace word" }, |
||||
|
["<S-r>"] = { "cc", desc = "replace line" }, |
||||
|
["<M-s>"] = { "viw", desc = "select word" }, |
||||
|
["<M-y>"] = { "viwy", desc = "copy word" }, |
||||
|
["<M-p>"] = { "viwpgvy", desc = "replace word by copied word" }, |
||||
|
["<C-n>"] = { require("dial.map").inc_normal(), desc = "dial increment" }, |
||||
|
["<A-j>"] = { ":m .+1<CR>==" }, |
||||
|
["<A-k>"] = { ":m .-2<CR>==" }, |
||||
|
["<M-o>"] = { "o<esc>p" }, |
||||
|
["<S-y>"] = { "0v$y", desc = "copy entire row" }, |
||||
|
["<C-]>"] = { "<cmd>tabNext<cr>", desc = "move to next Tab" }, |
||||
|
["<C-[>"] = { "<cmd>tabprevious<cr>", desc = "move to previous Tab" }, |
||||
|
["<CS-]>"] = { "<cmd>cnext<cr>", desc = "next quickfix" }, |
||||
|
["<leader>fl"] = { function() require('helpers').oldfiles({}) end, desc = "find oldfiles" }, |
||||
|
--git |
||||
|
["<leader>gy"] = { "<cmd>DiffviewFileHistory %<cr>", desc = "Git file diff history" }, |
||||
|
["<leader>gY"] = { "<cmd>DiffviewFileHistory<cr>", desc = "Git diff history" }, |
||||
|
--tabs |
||||
|
["<tab>"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" }, |
||||
|
["<S-tab>"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" }, |
||||
|
["<leader>bt"] = { "<cmd>tabclose<cr>", desc = "Close tab" }, |
||||
|
--window moviment |
||||
|
["<C-h>"] = { "<C-w>h", desc = "Go to left window" }, |
||||
|
["<C-l>"] = { "<C-w>l", desc = "Go to right window" }, |
||||
|
["<C-j>"] = { "<C-w>j", desc = "Go to lower window" }, |
||||
|
["<C-k>"] = { "<C-w>k", desc = "Go to upper window" }, |
||||
|
-- split window |
||||
|
["|"] = { "<C-w>v", desc = "Vertical Split" }, |
||||
|
["\\"] = { "<C-w>s", desc = "Horizontal Split" }, |
||||
|
--terminals get or create |
||||
|
-- ["<C-\\>"] = { "<cmd>ToggleTerm<cr>" }, |
||||
|
["<C-\\>"] = { function() require("helpers").toggle_term() end, desc = "Toggle Terminal" }, |
||||
|
["<c-;>"] = { function() require("helpers").select_terminal() end, desc = "List All opened terminals" }, |
||||
|
["<M-1>"] = { |
||||
|
function() require("helpers").term_horizontal() end, |
||||
|
desc = "Horizontal Terminal", |
||||
|
}, |
||||
|
["<M-2>"] = { |
||||
|
function() require("helpers").term_vertical() end, |
||||
|
desc = "Vertical Terminal", |
||||
|
}, |
||||
|
["<M-3>"] = { |
||||
|
function() require("helpers").term_float() end, |
||||
|
desc = "Float Terminal", |
||||
|
}, |
||||
|
--buffers |
||||
|
["<leader>b"] = { name = "Buffers" }, |
||||
|
["<leader>bn"] = { "<cmd>tabnew<cr>", desc = "New tab" }, |
||||
|
-- navigate buffer tabs with `H` and `L` |
||||
|
L = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" }, |
||||
|
H = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" }, |
||||
|
["<Leader>bD"] = { |
||||
|
function() |
||||
|
require("astroui.status.heirline").buffer_picker( |
||||
|
function(bufnr) require("astrocore.buffer").close(bufnr) end |
||||
|
) |
||||
|
end, |
||||
|
desc = "Pick to close", |
||||
|
}, |
||||
|
--user extra commands |
||||
|
["<leader>kd"] = {desc =" Database commands"}, |
||||
|
["<leader>kdu"] = {"<cmd>DBUIToggle<cr>",desc ="Toggle ui"}, |
||||
|
["<leader>kda"] = {"<cmd>DBUIAddConnection<cr>",desc ="Add connection"}, |
||||
|
["<leader>k"] = { desc = " User extra commands" }, |
||||
|
["<leader>kr"] = { "<cmd>lua require('helpers').openMDfile()<cr>", desc = "Open md file in glow" }, |
||||
|
["<leader>km"] = { |
||||
|
"<cmd>lua require('helpers').openMDfile(\"com.github.marktext.marktext\")<cr>", |
||||
|
desc = "Open md file in MarkText", |
||||
|
}, |
||||
|
["<leader>kj"] = { "<cmd>set ft=htmldjango<cr>", desc = "set ft=htmldjango" }, |
||||
|
["<leader>kh"] = { "<cmd>set ft=html<cr>", desc = "set ft=html" }, |
||||
|
["<leader>kt"] = { "<cmd>set ft=templ<cr>", desc = "set ft=templ" }, |
||||
|
["<leader>ke"] = {"<cmd>redir! > error_messages | silent messages | redir END | edit!<CR>", desc = "Create error_messages file with vim messages"}, |
||||
|
--terminal compile sass to css |
||||
|
["<leader>ts"] = { |
||||
|
function() require("helpers").compile_sass() end, |
||||
|
desc = "compile sass to css.", |
||||
|
}, |
||||
|
--python test |
||||
|
["<leader>T"] = { desc = " Tests" }, |
||||
|
["<leader>Tr"] = { "<cmd>lua require('neotest').run.run()<cr>", desc = "Run test" }, |
||||
|
["<leader>Tf"] = { "<cmd>lua require('neotest').run.run(vim.fn.expand('%'))<cr>", desc = "Run test expand" }, |
||||
|
["<leader>Td"] = { "<cmd>lua require('neotest').run.run({strategy = 'dap'})<cr>", desc = "Run test dap" }, |
||||
|
["<leader>Ts"] = { "<cmd>lua require('neotest').summary.toggle()<cr>", desc = "Toggle test summary" }, |
||||
|
["<leader>Tp"] = { "<cmd>lua require('neotest').output_panel.toggle()<cr>", desc = "Toggle output panel" }, |
||||
|
--trouble |
||||
|
["<leader>xx"] = { function() require("trouble").toggle() end, desc = "Trouble toggle" }, |
||||
|
["<leader>xw"] = { |
||||
|
function() require("trouble").toggle "workspace_diagnostics" end, |
||||
|
desc = "Trouble Workspace", |
||||
|
}, |
||||
|
["<leader>xd"] = { |
||||
|
function() require("trouble").toggle "document_diagnostics" end, |
||||
|
desc = "Trouble Document", |
||||
|
}, |
||||
|
["<leader>xq"] = { function() require("trouble").toggle "quickfix" end, desc = "Trouble Quickfix" }, |
||||
|
["<leader>xl"] = { function() require("trouble").toggle "loclist" end, desc = "Trouble Location" }, |
||||
|
["gR"] = { function() require("trouble").toggle "lsp_references" end, desc = "Trouble LSP References" }, |
||||
|
}, |
||||
|
t = { |
||||
|
["<C-\\>"] = { "<cmd>ToggleTerm<cr>" }, |
||||
|
}, |
||||
|
v = { |
||||
|
["<S-s>"] = { "ciw", desc = "select word" }, |
||||
|
["<"] = { "<gv" }, |
||||
|
[">"] = { ">gv" }, |
||||
|
["p"] = { "pgvy" }, |
||||
|
["d"] = { "_d" }, |
||||
|
}, |
||||
|
x = { |
||||
|
["<A-j>"] = { ":m '>+1<CR>gv-gv" }, |
||||
|
["<A-k>"] = { ":m '<-2<CR>gv-gv" }, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,56 @@ |
|||||
|
---@type LazySpec |
||||
|
return { |
||||
|
{ |
||||
|
"neovim/nvim-lspconfig", |
||||
|
config = function() |
||||
|
require("lspconfig").pyright.setup { |
||||
|
settings = { |
||||
|
python = { |
||||
|
analysis = { |
||||
|
autoSearchPaths = true, |
||||
|
diagnosticMode = "workspace", |
||||
|
useLibraryCodeForTypes = true, |
||||
|
typeCheckingMode = "off", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
} |
||||
|
end, |
||||
|
}, |
||||
|
{ |
||||
|
"williamboman/mason-lspconfig.nvim", |
||||
|
opts = { |
||||
|
ensure_installed = { |
||||
|
"lua_ls", |
||||
|
"pyright", |
||||
|
"html", |
||||
|
"jsonls", |
||||
|
"cssls", |
||||
|
"gopls", |
||||
|
"bashls", |
||||
|
"tailwindcss", |
||||
|
"templ", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
"jay-babu/mason-null-ls.nvim", |
||||
|
opts = { |
||||
|
ensure_installed = { |
||||
|
"prettier", |
||||
|
"stylua", |
||||
|
"djlint", |
||||
|
"isort", |
||||
|
"black", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
"jay-babu/mason-nvim-dap.nvim", |
||||
|
opts = { |
||||
|
ensure_installed = { |
||||
|
"python", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,152 @@ |
|||||
|
local get_icon = require("astroui").get_icon |
||||
|
|
||||
|
return { |
||||
|
"nvim-neo-tree/neo-tree.nvim", |
||||
|
dependencies = { "MunifTanjim/nui.nvim" }, |
||||
|
cmd = "Neotree", |
||||
|
opts = { |
||||
|
auto_clean_after_session_restore = true, |
||||
|
close_if_last_window = false, |
||||
|
source_selector = { |
||||
|
winbar = false, |
||||
|
content_layout = "center", |
||||
|
}, |
||||
|
default_component_configs = { |
||||
|
indent = { |
||||
|
indent_size = 2, |
||||
|
padding = 1, -- extra padding on left hand side |
||||
|
with_markers = true, |
||||
|
indent_marker = "│", |
||||
|
last_indent_marker = "└", |
||||
|
highlight = "NeoTreeIndentMarker", |
||||
|
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders |
||||
|
expander_collapsed = "", |
||||
|
expander_expanded = "", |
||||
|
expander_highlight = "NeoTreeExpander", |
||||
|
}, |
||||
|
modified = { symbol = get_icon "FileModified" }, |
||||
|
name = { |
||||
|
trailing_slash = false, |
||||
|
use_git_status_colors = true, |
||||
|
highlight = "NeoTreeFileName", |
||||
|
}, |
||||
|
git_status = { |
||||
|
symbols = { |
||||
|
added = get_icon "GitAdd", |
||||
|
deleted = get_icon "GitDelete", |
||||
|
modified = get_icon "GitChange", |
||||
|
renamed = get_icon "GitRenamed", |
||||
|
untracked = "", |
||||
|
ignored = get_icon "GitIgnored", |
||||
|
unstaged = get_icon "GitUnstaged", |
||||
|
staged = get_icon "GitStaged", |
||||
|
conflict = get_icon "GitConflict", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
window = { |
||||
|
width = 35, |
||||
|
mappings = { |
||||
|
["<space>"] = false, -- disable space until we figure out which-key disabling |
||||
|
["[b"] = "prev_source", |
||||
|
["]b"] = "next_source", |
||||
|
o = "open", |
||||
|
O = "system_open", |
||||
|
h = "parent_or_close", |
||||
|
l = "child_or_open", |
||||
|
Y = "copy_selector", |
||||
|
}, |
||||
|
}, |
||||
|
filesystem = { |
||||
|
filtered_items = { |
||||
|
visible = true, -- when true, they will just be displayed differently than normal items |
||||
|
hide_dotfiles = false, |
||||
|
hide_gitignored = false, |
||||
|
hide_hidden = false, -- only works on Windows for hidden files/directories |
||||
|
hide_by_name = { |
||||
|
--"node_modules" |
||||
|
}, |
||||
|
hide_by_pattern = { -- uses glob style patterns |
||||
|
--"*.meta", |
||||
|
--"*/src/*/tsconfig.json", |
||||
|
"*_templ.go", |
||||
|
}, |
||||
|
always_show = { -- remains visible even if other settings would normally hide it |
||||
|
--".gitignored", |
||||
|
}, |
||||
|
never_show = { -- remains hidden even if visible is toggled to true, this overrides always_show |
||||
|
--".DS_Store", |
||||
|
--"thumbs.db" |
||||
|
}, |
||||
|
never_show_by_pattern = { -- uses glob style patterns |
||||
|
--".null-ls_*", |
||||
|
}, |
||||
|
}, |
||||
|
follow_current_file = { |
||||
|
enabled = true, |
||||
|
}, |
||||
|
hijack_netrw_behavior = "open_current", |
||||
|
use_libuv_file_watcher = true, |
||||
|
commands = { |
||||
|
delete = function(state) |
||||
|
local tree = state.tree |
||||
|
local node = tree:get_node() |
||||
|
local log = require "neo-tree.log" |
||||
|
local inputs = require "neo-tree.ui.inputs" |
||||
|
|
||||
|
local msg = string.format("Are you sure you want to delete '%s'?", node.name) |
||||
|
local do_delete_ = function(confirmed) |
||||
|
if not confirmed then return end |
||||
|
vim.fn.system { "gio", "trash", node.path } |
||||
|
end |
||||
|
|
||||
|
if node.type == "file" or node.type == "directory" then |
||||
|
inputs.confirm(msg, do_delete_) |
||||
|
else |
||||
|
log.warn "The `delete` command can only be used on files and directories" |
||||
|
end |
||||
|
end, |
||||
|
delete_visual = function(state, selected_nodes) |
||||
|
local paths_to_delete = {} |
||||
|
local inputs = require "neo-tree.ui.inputs" |
||||
|
|
||||
|
for _, node_to_delete in pairs(selected_nodes) do |
||||
|
if node_to_delete.type == "file" or node_to_delete.type == "directory" then |
||||
|
table.insert(paths_to_delete, node_to_delete.path) |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
local msg = "Are you sure you want to delete " .. #paths_to_delete .. " items?" |
||||
|
local do_delete_ = function(confirmed) |
||||
|
if not confirmed then return end |
||||
|
for _, path in pairs(paths_to_delete) do |
||||
|
vim.fn.system { "gio", "trash", path } |
||||
|
end |
||||
|
end |
||||
|
inputs.confirm(msg, do_delete_) |
||||
|
end, |
||||
|
}, |
||||
|
}, |
||||
|
buffers = { |
||||
|
follow_current_file = { |
||||
|
enabled = true, |
||||
|
}, -- This will find and focus the file in the active buffer every |
||||
|
-- time the current file is changed while the tree is open. |
||||
|
group_empty_dirs = true, -- when true, empty folders will be grouped together |
||||
|
show_unloaded = true, |
||||
|
window = { |
||||
|
mappings = { |
||||
|
["bd"] = "buffer_delete", |
||||
|
["<bs>"] = "navigate_up", |
||||
|
["."] = "set_root", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
event_handlers = { |
||||
|
{ |
||||
|
event = "neo_tree_buffer_enter", |
||||
|
handler = function(_) vim.opt_local.signcolumn = "auto" end, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,24 @@ |
|||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE |
||||
|
|
||||
|
-- Customize None-ls sources |
||||
|
|
||||
|
---@type LazySpec |
||||
|
return { |
||||
|
"nvimtools/none-ls.nvim", |
||||
|
opts = function(_, opts) |
||||
|
-- opts variable is the default configuration table for the setup function call |
||||
|
-- local null_ls = require "null-ls" |
||||
|
|
||||
|
-- Check supported formatters and linters |
||||
|
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting |
||||
|
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics |
||||
|
|
||||
|
-- Only insert new sources, do not replace the existing ones |
||||
|
-- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function) |
||||
|
opts.sources = require("astrocore").list_insert_unique(opts.sources, { |
||||
|
-- Set a formatter |
||||
|
-- null_ls.builtins.formatting.stylua, |
||||
|
-- null_ls.builtins.formatting.prettier, |
||||
|
}) |
||||
|
end, |
||||
|
} |
@ -0,0 +1,31 @@ |
|||||
|
---@type LazySpec |
||||
|
return { |
||||
|
"nvim-treesitter/nvim-treesitter", |
||||
|
opts = { |
||||
|
ensure_installed = { |
||||
|
"lua", |
||||
|
"vim", |
||||
|
"python", |
||||
|
"comment", |
||||
|
"dockerfile", |
||||
|
"bash", |
||||
|
"css", |
||||
|
"scss", |
||||
|
"gitcommit", |
||||
|
"gitignore", |
||||
|
"gitattributes", |
||||
|
"html", |
||||
|
"htmldjango", |
||||
|
"javascript", |
||||
|
"json", |
||||
|
"markdown", |
||||
|
"mermaid", |
||||
|
"sql", |
||||
|
"toml", |
||||
|
"vim", |
||||
|
"yaml", |
||||
|
"go", |
||||
|
"templ", |
||||
|
}, |
||||
|
}, |
||||
|
} |
@ -0,0 +1,252 @@ |
|||||
|
---@type LazySpec |
||||
|
return { |
||||
|
{ |
||||
|
"goolord/alpha-nvim", |
||||
|
opts = function(_, opts) |
||||
|
opts.section.header.val = { |
||||
|
|
||||
|
" .-=*##%%+=* **+@@%%#+-: ", |
||||
|
" -%@@@@@@@%++--: ---++#@@@@@@@@+ ", |
||||
|
" *@@@@@@@@@@@@@@@%- =%@@@@@@@@@@@@@@@* ", |
||||
|
" .@@@@@@@@#@@@@@@@@#. .#@@@@@@@@#@@@@@@@@: ", |
||||
|
" =@@@@@@%=-*@@@%%@@@- -@@@%%@@@*-=#@@@@@@* ", |
||||
|
" %@@@@@%-+--*%+--*@@+ +@@*=-=%*--+=*@@@@@@. ", |
||||
|
" -@@@@@@--*+-------+#* *%+-------=*--#@@@@@= ", |
||||
|
" +@@@%=---++--------=- ==--------++----#@@@# ", |
||||
|
" #@@------=+---------.=---------+=------@@% ", |
||||
|
" #@--------+--------=---------+=-------%%. ", |
||||
|
" +*----=+**#=------=--------#**++----+* ", |
||||
|
" -#+-------==-----=------=+-------=#= ", |
||||
|
" +%=------=+----------==-------## ", |
||||
|
" -%+------=*---.:---+=------=@= ", |
||||
|
" : :-----*-. .-*=----:. .. ", |
||||
|
" ..:::::.-: .-.:::::.. ", |
||||
|
" ", |
||||
|
"██╗ ██╗██╗ ██╗██████╗ ██╗ ██╗███╗ ██╗██╗ ██╗██╗███╗ ███╗", |
||||
|
"██║ ██╔╝██║ ██║██╔══██╗██║ ██║████╗ ██║██║ ██║██║████╗ ████║", |
||||
|
"█████╔╝ ██║ ██║██████╔╝██║ ██║██╔██╗ ██║██║ ██║██║██╔████╔██║", |
||||
|
"██╔═██╗ ██║ ██║██╔══██╗██║ ██║██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║", |
||||
|
"██║ ██╗╚██████╔╝██║ ██║╚██████╔╝██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║", |
||||
|
"╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═══╝ ╚═╝╚═╝ ╚═╝", |
||||
|
} |
||||
|
return opts |
||||
|
end, |
||||
|
}, |
||||
|
{ |
||||
|
"L3MON4D3/LuaSnip", |
||||
|
config = function(plugin, opts) |
||||
|
require "astronvim.plugins.configs.luasnip"(plugin, opts) |
||||
|
local luasnip = require "luasnip" |
||||
|
luasnip.filetype_extend("javascript", { "javascriptreact" }) |
||||
|
require("luasnip.loaders.from_lua").lazy_load() |
||||
|
require("luasnip.loaders.from_vscode").lazy_load { |
||||
|
paths = vim.fn.stdpath "config" .. "/lua/snippets", |
||||
|
} |
||||
|
require("luasnip.loaders.from_snipmate").lazy_load() |
||||
|
end, |
||||
|
}, |
||||
|
{ |
||||
|
"windwp/nvim-autopairs", |
||||
|
config = function(plugin, opts) |
||||
|
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) |
||||
|
local npairs = require "nvim-autopairs" |
||||
|
local Rule = require "nvim-autopairs.rule" |
||||
|
local cond = require "nvim-autopairs.conds" |
||||
|
npairs.add_rules( |
||||
|
{ |
||||
|
Rule("$", "$", { "tex", "latex" }) |
||||
|
-- don't add a pair if the next character is % |
||||
|
:with_pair(cond.not_after_regex "%%") |
||||
|
-- don't add a pair if the previous character is xxx |
||||
|
:with_pair( |
||||
|
cond.not_before_regex("xxx", 3) |
||||
|
) |
||||
|
-- don't move right when repeat character |
||||
|
:with_move(cond.none()) |
||||
|
-- don't delete if the next character is xx |
||||
|
:with_del(cond.not_after_regex "xx") |
||||
|
-- disable adding a newline when you press <cr> |
||||
|
:with_cr(cond.none()), |
||||
|
}, |
||||
|
-- disable for .vim files, but it work for another filetypes |
||||
|
Rule("a", "a", "-vim") |
||||
|
) |
||||
|
end, |
||||
|
}, |
||||
|
{ |
||||
|
"jay-babu/mason-nvim-dap.nvim", |
||||
|
dependencies = { "nvim-dap" }, |
||||
|
opts = function(_, opts) |
||||
|
local venv_path = os.getenv "VIRTUAL_ENV" or os.getenv "CONDA_PREFIX" |
||||
|
require "astronvim." |
||||
|
opts.ensure_installed = require("astrocore").extend_tbl(opts.ensure_installed, { |
||||
|
"python", |
||||
|
"stylua", |
||||
|
"delve", |
||||
|
}) |
||||
|
opts.handlers = { |
||||
|
function(config) |
||||
|
require("mason-nvim-dap").default_setup(config) |
||||
|
end, |
||||
|
python = function(config) |
||||
|
config.adapters = { |
||||
|
type = "executable", |
||||
|
command = vim.fn.exepath "debugpy-adapter", |
||||
|
} |
||||
|
config.configurations = { |
||||
|
{ |
||||
|
type = "python", |
||||
|
request = "launch", |
||||
|
name = "Python: Django", |
||||
|
program = "${workspaceFolder}/manage.py", |
||||
|
pythonPath = venv_path and (venv_path .. "/bin/python") or nil, |
||||
|
console = "integratedTerminal", |
||||
|
args = { "runserver", "--noreload", "--nothreading" }, |
||||
|
django = true, |
||||
|
justMyCode = false, |
||||
|
}, |
||||
|
{ |
||||
|
type = "python", |
||||
|
request = "launch", |
||||
|
name = "Python: Launch file", |
||||
|
program = "${file}", |
||||
|
pythonPath = venv_path and (venv_path .. "/bin/python") or nil, |
||||
|
console = "integratedTerminal", |
||||
|
}, |
||||
|
{ |
||||
|
type = "python", |
||||
|
request = "launch", |
||||
|
name = "Python: Launch package", |
||||
|
program = "${workspaceFolder}/main.py", |
||||
|
pythonPath = venv_path and (venv_path .. "/bin/python") or nil, |
||||
|
console = "integratedTerminal", |
||||
|
}, |
||||
|
} |
||||
|
require("mason-nvim-dap").default_setup(config) -- don't forget this! |
||||
|
end, |
||||
|
} |
||||
|
end, |
||||
|
}, |
||||
|
{ |
||||
|
"mattn/emmet-vim", |
||||
|
lazy = false, |
||||
|
}, |
||||
|
{ |
||||
|
"vim-test/vim-test", |
||||
|
}, |
||||
|
{ |
||||
|
"nvim-neotest/neotest", |
||||
|
dependencies = { |
||||
|
"vim-test/vim-test", |
||||
|
"nvim-lua/plenary.nvim", |
||||
|
"nvim-treesitter/nvim-treesitter", |
||||
|
"antoinemadec/FixCursorHold.nvim", |
||||
|
"nvim-neotest/neotest-python", |
||||
|
}, |
||||
|
opts = function(_, opts) |
||||
|
local venv_path = os.getenv "VIRTUAL_ENV" or os.getenv "CONDA_PREFIX" |
||||
|
opts.adapters = { |
||||
|
require "neotest-python" { |
||||
|
dap = { |
||||
|
justMyCode = false, |
||||
|
program = "${workspaceFolder}/manage.py", |
||||
|
python = venv_path and (venv_path .. "/bin/python") or nil, |
||||
|
args = { "test" }, |
||||
|
}, |
||||
|
runner = "pytest", |
||||
|
is_test_file = function(file_path) |
||||
|
if file_path:match "tests.py" or file_path:match "test_.+.py$" or file_path:match "^.+_tests.py$" then |
||||
|
return file_path |
||||
|
end |
||||
|
end, |
||||
|
}, |
||||
|
} |
||||
|
end, |
||||
|
keys = { |
||||
|
{ |
||||
|
"<M-t>", |
||||
|
function() require("neotest").summary.toggle() end, |
||||
|
desc = "Toggle test summary", |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
"folke/todo-comments.nvim", |
||||
|
dependencies = { "nvim-lua/plenary.nvim" }, |
||||
|
opts = function(_, opts) |
||||
|
opts.keywords = { |
||||
|
FIX = { |
||||
|
icon = " ", -- icon used for the sign, and in search results |
||||
|
color = "error", -- can be a hex color, or a named color (see below) |
||||
|
alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords |
||||
|
}, |
||||
|
TODO = { icon = " ", color = "info" }, |
||||
|
HACK = { icon = " ", color = "warning" }, |
||||
|
WARN = { icon = " ", color = "warning", alt = { "XXX" } }, |
||||
|
PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, |
||||
|
NOTE = { icon = " ", color = "hint", alt = { "NOTE" } }, |
||||
|
TEST = { icon = " ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }, |
||||
|
} |
||||
|
opts.signs = true |
||||
|
opts.sign_priority = 8 |
||||
|
opts.merge_keywords = true |
||||
|
opts.pattern = [[(KEYWORDS):]] |
||||
|
return opts |
||||
|
end, |
||||
|
keys = { |
||||
|
{ "<leader>xt", "<cmd>TodoTrouble<cr>", desc = "Todo (Trouble)" }, |
||||
|
}, |
||||
|
}, |
||||
|
{ "ralismark/nvim-tabletops", lazy = false }, |
||||
|
{ "sindrets/diffview.nvim", lazy = false }, |
||||
|
{ "theHamsta/nvim-dap-virtual-text" }, |
||||
|
{ |
||||
|
"laytan/cloak.nvim", |
||||
|
lazy = false, |
||||
|
opts = { |
||||
|
enabled = true, |
||||
|
cloak_character = "🔐", |
||||
|
highlight_group = "Comment", |
||||
|
cloak_length = 1, |
||||
|
try_all_patterns = true, |
||||
|
patterns = { |
||||
|
{ |
||||
|
|
||||
|
file_pattern = ".env*", |
||||
|
cloak_pattern = "=.+", |
||||
|
replace = nil, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
"Exafunction/codeium.vim", |
||||
|
enabled=false, |
||||
|
event = "BufEnter", |
||||
|
config = function() |
||||
|
vim.keymap.set("i", "<C-g>", function() return vim.fn["codeium#Accept"]() end, { expr = true, silent = true }) |
||||
|
vim.keymap.set( |
||||
|
"i", |
||||
|
"<c-;>", |
||||
|
function() return vim.fn["codeium#CycleCompletions"](1) end, |
||||
|
{ expr = true, silent = true } |
||||
|
) |
||||
|
vim.keymap.set( |
||||
|
"i", |
||||
|
"<c-,>", |
||||
|
function() return vim.fn["codeium#CycleCompletions"](-1) end, |
||||
|
{ expr = true, silent = true } |
||||
|
) |
||||
|
vim.keymap.set("i", "<c-x>", function() return vim.fn["codeium#Clear"]() end, { expr = true, silent = true }) |
||||
|
end, |
||||
|
}, |
||||
|
{ |
||||
|
"folke/trouble.nvim", |
||||
|
dependencies = { "nvim-tree/nvim-web-devicons" }, |
||||
|
opts = {}, |
||||
|
}, |
||||
|
{ |
||||
|
"mbbill/undotree", |
||||
|
config = function() vim.keymap.set("n", "<leader>ku", vim.cmd.UndotreeToggle) end, |
||||
|
} |
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE |
||||
|
|
||||
|
-- This will run last in the setup process and is a good place to configure |
||||
|
-- things like custom filetypes. This is just pure lua so anything that doesn't |
||||
|
-- fit in the normal config locations above can go here |
||||
|
|
||||
|
-- Set up custom filetypes |
||||
|
vim.filetype.add { |
||||
|
extension = { |
||||
|
foo = "fooscript", |
||||
|
}, |
||||
|
filename = { |
||||
|
["Foofile"] = "fooscript", |
||||
|
}, |
||||
|
pattern = { |
||||
|
["~/%.config/foo/.*"] = "fooscript", |
||||
|
}, |
||||
|
} |
File diff suppressed because it is too large
@ -0,0 +1,512 @@ |
|||||
|
{ |
||||
|
"mauto": { |
||||
|
"prefix": "mauto", |
||||
|
"description": "AutoField (mauto) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.AutoField()" |
||||
|
] |
||||
|
}, |
||||
|
"mbigint": { |
||||
|
"prefix": "mbigint", |
||||
|
"description": "BigIntegerField (mbigint) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.BigIntegerField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mbool": { |
||||
|
"prefix": "mbool", |
||||
|
"description": "BooleanField (mbool) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.BooleanField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mchar": { |
||||
|
"prefix": "mchar", |
||||
|
"description": "CharField (mchar) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.CharField(${DESCRICAO}, max_length=50)" |
||||
|
] |
||||
|
}, |
||||
|
"mcoseint": { |
||||
|
"prefix": "mcoseint", |
||||
|
"description": "CommaSeparatedIntegerField (mcoseint) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.CommaSeparatedIntegerField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mdate": { |
||||
|
"prefix": "mdate", |
||||
|
"description": "DateField (mdate) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.DateField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mdatetime": { |
||||
|
"prefix": "mdatetime", |
||||
|
"description": "DateTimeField (mdatetime) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.DateTimeField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mdecimal": { |
||||
|
"prefix": "mdecimal", |
||||
|
"description": "DecimalField (mdecimal) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.DecimalField(${DESCRICAO}, max_digits=5, decimal_places=2)" |
||||
|
] |
||||
|
}, |
||||
|
"mduration": { |
||||
|
"prefix": "mduration", |
||||
|
"description": "DurationField (mduration) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.DurationField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"memail": { |
||||
|
"prefix": "memail", |
||||
|
"description": "EmailField (memail) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.EmailField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mfile": { |
||||
|
"prefix": "mfile", |
||||
|
"description": "FileField (mfile) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.FileField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mfilepath": { |
||||
|
"prefix": "mfilepath", |
||||
|
"description": "FilePathField (mfilepath) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.FilePathField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mfloat": { |
||||
|
"prefix": "mfloat", |
||||
|
"description": " (mfloat) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.FloatField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mimg": { |
||||
|
"prefix": "mimg", |
||||
|
"description": "ImageField (mimg) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.ImageField(${DESCRICAO}, upload_to='${SUBPASTA}')" |
||||
|
] |
||||
|
}, |
||||
|
"mint": { |
||||
|
"prefix": "mint", |
||||
|
"description": "IntegerField (mint) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.IntegerField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mip": { |
||||
|
"prefix": "mip", |
||||
|
"description": "IPAddressField (mip) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.IPAddressField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mnullbool": { |
||||
|
"prefix": "mnullbool", |
||||
|
"description": "NullBooleanField (mnullbool) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.NullBooleanField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mphone": { |
||||
|
"prefix": "mphone", |
||||
|
"description": "PhoneNumberField (mphone) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.PhoneNumberField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mposint": { |
||||
|
"prefix": "mposint", |
||||
|
"description": "PositiveIntegerField (mposint) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.PositiveIntegerField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mpossmallint": { |
||||
|
"prefix": "mpossmallint", |
||||
|
"description": "PositiveSmallIntegerField (mpossmallint) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.PositiveSmallIntegerField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mslug": { |
||||
|
"prefix": "mslug", |
||||
|
"description": "SlugField (mslug) model Field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.SlugField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"msmallint": { |
||||
|
"prefix": "msmallint", |
||||
|
"description": "SmallIntegerField (msmallint) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.SmallIntegerField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mtext": { |
||||
|
"prefix": "mtext", |
||||
|
"description": "TextField (mtext) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.TextField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mtime": { |
||||
|
"prefix": "mtime", |
||||
|
"description": "TimeField (mtime) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.TimeField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"murl": { |
||||
|
"prefix": "murl", |
||||
|
"description": "URLField (murl) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.URLField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"musstate": { |
||||
|
"prefix": "musstate", |
||||
|
"description": "USStateField (musstate) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.USStateField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"mxml": { |
||||
|
"prefix": "mxml", |
||||
|
"description": "XMLField (mxml) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.XMLField(${DESCRICAO})" |
||||
|
] |
||||
|
}, |
||||
|
"fk": { |
||||
|
"prefix": "mfo", |
||||
|
"description": "ForeignKey (fk) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.ForeignKey(${FKNAME}, on_delete=models.${PROTECT}, verbose_name='${DESCRICAO}', related_name='${RELACAO}')" |
||||
|
] |
||||
|
}, |
||||
|
"m2m": { |
||||
|
"prefix": "m2m", |
||||
|
"description": "ManyToManyField (m2m) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.ManyToManyField(${FKNAME}, verbose_name='${DESCRICAO}', related_name='${RELACAO}')" |
||||
|
] |
||||
|
}, |
||||
|
"o2o": { |
||||
|
"prefix": "o2o", |
||||
|
"description": "OneToOneField (o2o) model field", |
||||
|
"body": [ |
||||
|
"${FIELDNAME} = models.OneToOneField(${DESCRICAO}, on_delete=models.${PROTECT})" |
||||
|
] |
||||
|
}, |
||||
|
"mserializer": { |
||||
|
"prefix": "mserializer", |
||||
|
"description": "ModelSerializer (mserializer) Rest Framework", |
||||
|
"body": [ |
||||
|
"class ${ModelName}Serializer(serializers.ModelSerializer):", |
||||
|
"", |
||||
|
"\tclass Meta:", |
||||
|
"\t\tmodel = ${ModelName}", |
||||
|
"\t\tfields = '__all__'" |
||||
|
] |
||||
|
}, |
||||
|
"mviewset": { |
||||
|
"prefix": "mviewset", |
||||
|
"description": "ModelViewSet (mviewset) Rest Framework", |
||||
|
"body": [ |
||||
|
"class ${ModelName}ViewSet(viewsets.ModelViewSet):", |
||||
|
"", |
||||
|
"\tqueryset = ${ModelName}.objects.all()", |
||||
|
"\tserializer_class = ${ModelName}Serializer" |
||||
|
] |
||||
|
}, |
||||
|
"ronlymviewset": { |
||||
|
"prefix": "ronlymviewset", |
||||
|
"description": "ReadOnlyModelViewSet (ronlymviewset) Rest Framework", |
||||
|
"body": [ |
||||
|
"class ${ModelName}ViewSet(viewsets.ReadOnlyModelViewSet):", |
||||
|
"", |
||||
|
"\tqueryset = ${ModelName}.objects.all()", |
||||
|
"\tserializer_class = ${ModelName}Serializer" |
||||
|
] |
||||
|
}, |
||||
|
"Model": { |
||||
|
"prefix": "mmodel", |
||||
|
"description": "models.Model (Model) Class Model of Django", |
||||
|
"body": [ |
||||
|
"class ${ModelName}(models.Model):", |
||||
|
"", |
||||
|
"\tdef __str__(self):", |
||||
|
"\t\tpass", |
||||
|
"", |
||||
|
"\tclass Meta:", |
||||
|
"\t\tdb_table = ''", |
||||
|
"\t\tmanaged = True", |
||||
|
"\t\tverbose_name = '${ModelName}'", |
||||
|
"\t\tverbose_name_plural = '${ModelName}s'" |
||||
|
] |
||||
|
}, |
||||
|
"Meta": { |
||||
|
"prefix": "mmeta", |
||||
|
"description": "Meta (Meta) Meta Class of Model", |
||||
|
"body": [ |
||||
|
"class Meta:", |
||||
|
"\tdb_table = ''", |
||||
|
"\tmanaged = True", |
||||
|
"\tverbose_name = '${ModelName}'", |
||||
|
"\tverbose_name_plural = '${ModelName}s'" |
||||
|
] |
||||
|
}, |
||||
|
"adminRegister": { |
||||
|
"prefix": "adr", |
||||
|
"description": "Create admin site resgister for app", |
||||
|
"body": [ |
||||
|
"from .models import ${AppName}", |
||||
|
"", |
||||
|
"admin.site.register(${AppName})" |
||||
|
] |
||||
|
}, |
||||
|
"ondelete": { |
||||
|
"prefix": "ond", |
||||
|
"description": "on_delete option", |
||||
|
"body": [ |
||||
|
"on_delete=models.${PROTECT}" |
||||
|
] |
||||
|
}, |
||||
|
"null&blank": { |
||||
|
"prefix": "nbl", |
||||
|
"description": "null=True, blank=True option", |
||||
|
"body": [ |
||||
|
"null=True, blank=True" |
||||
|
] |
||||
|
}, |
||||
|
"Django CRUD Views": { |
||||
|
"prefix": "dcv", |
||||
|
"description": "Create CRUD views", |
||||
|
"body": [ |
||||
|
"from django.views.generic import ListView, CreateView, UpdateView, DeleteView", |
||||
|
"from django.contrib.auth.mixins import LoginRequiredMixin", |
||||
|
"from django.urls import reverse_lazy", |
||||
|
"from .models import ${ClasseObjeto}", |
||||
|
"", |
||||
|
"class ${ClasseObjeto}List(LoginRequiredMixin, ListView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"", |
||||
|
"class ${ClasseObjeto}Create(LoginRequiredMixin, CreateView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"\tform_class = None", |
||||
|
"\tsuccess_url = reverse_lazy('${ClasseObjeto}_list')", |
||||
|
"", |
||||
|
"class ${ClasseObjeto}Update(LoginRequiredMixin, UpdateView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"\tform_class = None", |
||||
|
"\tsuccess_url = reverse_lazy('${ClasseObjeto}_list')", |
||||
|
"", |
||||
|
"class ${ClasseObjeto}Delete(LoginRequiredMixin, DeleteView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"\tsuccess_url = reverse_lazy('${ClasseObjeto}_list')" |
||||
|
] |
||||
|
}, |
||||
|
"Django TemplateView": { |
||||
|
"prefix": "dtv", |
||||
|
"description": "Create a TemplateView", |
||||
|
"body": [ |
||||
|
"from django.views.generic import TemplateView", |
||||
|
"from django.contrib.auth.mixins import LoginRequiredMixin", |
||||
|
"", |
||||
|
"class ${NomeClasse}(LoginRequiredMixin, TemplateView):", |
||||
|
"\ttemplate_name = \"${arquivo}.html\"", |
||||
|
"", |
||||
|
"\tdef get_context_data(self, **kwargs):", |
||||
|
"\t\tcontext = super().get_context_data(**kwargs)", |
||||
|
"\t\tcontext['${var}'] = \"\"", |
||||
|
"\t\treturn context" |
||||
|
] |
||||
|
}, |
||||
|
"Django ListView": { |
||||
|
"prefix": "dclv", |
||||
|
"description": "Create a ListView", |
||||
|
"body": [ |
||||
|
"class ${ClasseObjeto}Create(LoginRequiredMixin, ListView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"", |
||||
|
"\tdef get_context_data(self, **kwargs):", |
||||
|
"\t\tcontext = super().get_context_data(**kwargs)", |
||||
|
"\t\tcontext['minha_variavel'] = 'Pode ser qualquer coisa'", |
||||
|
"\t\treturn context" |
||||
|
] |
||||
|
}, |
||||
|
"Django CreateView": { |
||||
|
"prefix": "dccv", |
||||
|
"description": "Create a CreateView", |
||||
|
"body": [ |
||||
|
"class ${ClasseObjeto}Create(LoginRequiredMixin, CreateView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"\tform_class = None", |
||||
|
"\tsuccess_url = reverse_lazy('${ClasseObjeto}_list')" |
||||
|
] |
||||
|
}, |
||||
|
"Django UpdateView": { |
||||
|
"prefix": "dcuv", |
||||
|
"description": "Create a UpdateView", |
||||
|
"body": [ |
||||
|
"class ${ClasseObjeto}Update(LoginRequiredMixin, UpdateView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"\tform_class = None", |
||||
|
"\tsuccess_url = reverse_lazy('${ClasseObjeto}_list')" |
||||
|
] |
||||
|
}, |
||||
|
"Django DeleteView": { |
||||
|
"prefix": "dcdv", |
||||
|
"description": "Create a DeleteView", |
||||
|
"body": [ |
||||
|
"class ${ClasseObjeto}Delete(LoginRequiredMixin, DeleteView):", |
||||
|
"\tmodel = ${ClasseObjeto}", |
||||
|
"\tsuccess_url = reverse_lazy('${ClasseObjeto}_list')" |
||||
|
] |
||||
|
}, |
||||
|
"Django Settings Internationalization and Static": { |
||||
|
"prefix": "dss", |
||||
|
"description": "Create Internationalization and staticfolders settings", |
||||
|
"body": [ |
||||
|
"# Internationalization", |
||||
|
"# https://docs.djangoproject.com/en/2.1/topics/i18n/", |
||||
|
"", |
||||
|
"LANGUAGE_CODE = 'pt-br'", |
||||
|
"", |
||||
|
"TIME_ZONE = 'America/Sao_Paulo'", |
||||
|
"", |
||||
|
"USE_I18N = True", |
||||
|
"", |
||||
|
"USE_L10N = True", |
||||
|
"", |
||||
|
"USE_TZ = True", |
||||
|
"", |
||||
|
"", |
||||
|
"# Static files (CSS, JavaScript, Images)", |
||||
|
"# https://docs.djangoproject.com/en/2.1/howto/static-files/", |
||||
|
"", |
||||
|
"STATIC_URL = '/static/'", |
||||
|
"", |
||||
|
"STATICFILES_DIRS = [", |
||||
|
"\tos.path.join(BASE_DIR, \"staticfiles\"),", |
||||
|
"]", |
||||
|
"", |
||||
|
"MEDIA_URL = '/media/'", |
||||
|
"", |
||||
|
"MEDIA_ROOT = os.path.join(BASE_DIR,'media')", |
||||
|
"", |
||||
|
"STATIC_ROOT = os.path.join(BASE_DIR,\"static/\")", |
||||
|
"", |
||||
|
"LOGIN_REDIRECT_URL = 'home'", |
||||
|
"", |
||||
|
"LOGOUT_REDIRECT_URL = 'login'" |
||||
|
] |
||||
|
}, |
||||
|
"Django Settings Template": { |
||||
|
"prefix": "dst", |
||||
|
"description": "Create template settings", |
||||
|
"body": [ |
||||
|
"TEMPLATES = [", |
||||
|
"\t{", |
||||
|
"\t\t'BACKEND': 'django.template.backends.django.DjangoTemplates',", |
||||
|
"\t\t'DIRS': ['templates', os.path.join(BASE_DIR,'templates')],", |
||||
|
"\t\t'APP_DIRS': True,", |
||||
|
"\t\t'OPTIONS': {", |
||||
|
"\t\t\t'context_processors': [", |
||||
|
"\t\t\t\t'django.template.context_processors.debug',", |
||||
|
"\t\t\t\t'django.template.context_processors.request',", |
||||
|
"\t\t\t\t'django.contrib.auth.context_processors.auth',", |
||||
|
"\t\t\t\t'django.contrib.messages.context_processors.messages',", |
||||
|
"\t\t\t],", |
||||
|
"\t\t},", |
||||
|
"\t},", |
||||
|
"]" |
||||
|
] |
||||
|
}, |
||||
|
"Django middleware": { |
||||
|
"prefix": "middlweware", |
||||
|
"description": "Create a middleware", |
||||
|
"body": [ |
||||
|
"def ${nome}_middleware(get_response):", |
||||
|
"\tdef middleware(request):", |
||||
|
"\t\tresponse = get_response(request)", |
||||
|
"\t\treturn response", |
||||
|
"\treturn middleware" |
||||
|
] |
||||
|
}, |
||||
|
"Django get_context_data": { |
||||
|
"prefix": "dgetc", |
||||
|
"description": "Create a get_context_data function", |
||||
|
"body": [ |
||||
|
"def get_context_data(self, **kwargs):", |
||||
|
"\tcontext = super().get_context_data(**kwargs)", |
||||
|
"\tcontext[\"${variavel}\"] = \"${valor}\"", |
||||
|
"\treturn context" |
||||
|
] |
||||
|
}, |
||||
|
"Django post": { |
||||
|
"prefix": "dpos", |
||||
|
"description": "Create a post function", |
||||
|
"body": [ |
||||
|
"def post(self, request, *args, **kwargs):", |
||||
|
"\treturn super().post(request, *args, **kwargs)" |
||||
|
] |
||||
|
}, |
||||
|
"Django get": { |
||||
|
"prefix": "dget", |
||||
|
"description": "Create a get function", |
||||
|
"body": [ |
||||
|
"def get(self, request, *args, **kwargs):", |
||||
|
"\treturn super().get(request, *args, **kwargs)" |
||||
|
] |
||||
|
}, |
||||
|
"Django constraints": { |
||||
|
"prefix": "dcons", |
||||
|
"description": "Create a constraint for Meta Models", |
||||
|
"body": [ |
||||
|
"constraints = [", |
||||
|
"\tmodels.UniqueConstraint(", |
||||
|
"\t\tfields=[\"${cons1}\", \"${cons2}\"], name=\"${model}_${cons1}_${cons2}\",", |
||||
|
"\t)", |
||||
|
"]" |
||||
|
] |
||||
|
}, |
||||
|
"Pyhton def __str__": { |
||||
|
"prefix": "defs", |
||||
|
"description": "Create a __str__ function", |
||||
|
"body": [ |
||||
|
"def __str__(self):", |
||||
|
"\treturn self.${NOME}" |
||||
|
] |
||||
|
}, |
||||
|
"Python encode": { |
||||
|
"prefix": "enc", |
||||
|
"description": "coding utf-8", |
||||
|
"body": [ |
||||
|
"# coding=utf-8" |
||||
|
] |
||||
|
}, |
||||
|
"Python Try/Except/Finally": { |
||||
|
"prefix": "try", |
||||
|
"description": "Command try/except/finally", |
||||
|
"body": [ |
||||
|
"try:", |
||||
|
"\t${pass}", |
||||
|
"except Exception as e:", |
||||
|
"\tprint(\"{}\".format(e))", |
||||
|
"finally:", |
||||
|
"\tpass" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,231 @@ |
|||||
|
{ |
||||
|
"autoescape": { |
||||
|
"prefix": "autoescape", |
||||
|
"description": "autoescape tag django template", |
||||
|
"body": ["{% autoescape ${off} %}", " ", "{% autoescape %}"] |
||||
|
}, |
||||
|
"block": { |
||||
|
"prefix": "block", |
||||
|
"description": "block tag django template", |
||||
|
"body": [ |
||||
|
"{% block $1 %}", |
||||
|
" ", |
||||
|
"{% endblock $1 %}" |
||||
|
] |
||||
|
}, |
||||
|
"comment": { |
||||
|
"prefix": "comment", |
||||
|
"description": "Comment tag django template", |
||||
|
"body": ["{% comment %}", " $1", "{% endcomment %}"] |
||||
|
}, |
||||
|
"csrf": { |
||||
|
"prefix": "csrf", |
||||
|
"description": "csrf token django template", |
||||
|
"body": ["{% csrf_token %}"] |
||||
|
}, |
||||
|
"cycle": { |
||||
|
"prefix": "cycle", |
||||
|
"description": "cycle tag django template", |
||||
|
"body": ["{% cycle %}"] |
||||
|
}, |
||||
|
"debug": { |
||||
|
"prefix": "debug", |
||||
|
"description": "debug tag django template", |
||||
|
"body": ["{% debug %}"] |
||||
|
}, |
||||
|
"ext": { |
||||
|
"prefix": "ext", |
||||
|
"description": "extends tag django template", |
||||
|
"body": ["{% extends \"$1\" %}"] |
||||
|
}, |
||||
|
"extends": { |
||||
|
"prefix": "extends", |
||||
|
"description": "extends tag django template", |
||||
|
"body": ["{% extends \"$1\" %}"] |
||||
|
}, |
||||
|
"filter": { |
||||
|
"prefix": "filter", |
||||
|
"description": "filter tag django template", |
||||
|
"body": ["{% filter $1 %}", " ", "{% endfilter %}"] |
||||
|
}, |
||||
|
"firstof": { |
||||
|
"prefix": "firstof", |
||||
|
"description": "firstof tag django template", |
||||
|
"body": ["{% firstof %}"] |
||||
|
}, |
||||
|
"for": { |
||||
|
"prefix": "for", |
||||
|
"description": "for tag django template", |
||||
|
"body": ["{% for $1 in %}", " ", "{% endfor %}"] |
||||
|
}, |
||||
|
"fore": { |
||||
|
"prefix": "fore", |
||||
|
"description": "foreach with empty tag django template", |
||||
|
"body": ["{% for $1 in %}", " ", "{% empty %}", " ", "{% endfor %}"] |
||||
|
}, |
||||
|
"if": { |
||||
|
"prefix": "if", |
||||
|
"description": "if tag django template", |
||||
|
"body": ["{% if $1 %}", " ", "{% endif %}"] |
||||
|
}, |
||||
|
"ifchanged": { |
||||
|
"prefix": "ifchanged", |
||||
|
"description": "ifchanged tag django template", |
||||
|
"body": ["{% ifchanged $1 %}", " ", "{% endifchanged %}"] |
||||
|
}, |
||||
|
"ife": { |
||||
|
"prefix": "ife", |
||||
|
"description": "if else tag django template", |
||||
|
"body": ["{% if $1 %}", " ", "{% else %}", " ", "{% endif %}", ""] |
||||
|
}, |
||||
|
"ifelse": { |
||||
|
"prefix": "ifelse", |
||||
|
"description": "if else tag django template", |
||||
|
"body": ["{% if $1 %}", " ", "{% else %}", " ", "{% endif %}", ""] |
||||
|
}, |
||||
|
"ifeq": { |
||||
|
"prefix": "ifeq", |
||||
|
"description": "ifequal tag django template", |
||||
|
"body": ["{% ifequal $1 %}", " ", "{% endifequal %}"] |
||||
|
}, |
||||
|
"ifequal": { |
||||
|
"prefix": "ifeq", |
||||
|
"description": "ifequal tag django template", |
||||
|
"body": ["{% ifequal $1 %}", " ", "{% endifequal %}"] |
||||
|
}, |
||||
|
"ifnotequal": { |
||||
|
"prefix": "ifnotequal", |
||||
|
"description": "ifnotequal tag django template", |
||||
|
"body": ["{% ifnotequal $1 %}", " ", "{% ifnotequal %}"] |
||||
|
}, |
||||
|
"inc": { |
||||
|
"prefix": "inc", |
||||
|
"description": "include tag django template", |
||||
|
"body": ["{% include \"$1\" %}"] |
||||
|
}, |
||||
|
"include": { |
||||
|
"prefix": "include", |
||||
|
"description": "include tag django template", |
||||
|
"body": ["{% include \"$1\" %}"] |
||||
|
}, |
||||
|
"load": { |
||||
|
"prefix": "load", |
||||
|
"description": "load tag django template", |
||||
|
"body": ["{% load $1 %}"] |
||||
|
}, |
||||
|
"now": { |
||||
|
"prefix": "now", |
||||
|
"description": "now tag django template", |
||||
|
"body": ["{% now \"$1\" %}"] |
||||
|
}, |
||||
|
"regroup": { |
||||
|
"prefix": "regroup", |
||||
|
"description": "regroup tag django template", |
||||
|
"body": ["{% regroup $1 by as %}"] |
||||
|
}, |
||||
|
"spaceless": { |
||||
|
"prefix": "spaceless", |
||||
|
"description": "spaceless tag django template", |
||||
|
"body": ["{% spaceless %}", " $1", "{% endspaceless %}"] |
||||
|
}, |
||||
|
"ssi": { |
||||
|
"prefix": "ssi", |
||||
|
"description": "ssi tag django template", |
||||
|
"body": ["{% ssi $1 parsed %}"] |
||||
|
}, |
||||
|
"static": { |
||||
|
"prefix": "static", |
||||
|
"description": "static tag django template", |
||||
|
"body": ["{% static '$1' %}"] |
||||
|
}, |
||||
|
"templatetag": { |
||||
|
"prefix": "templatetag", |
||||
|
"description": "templatetag tag django template", |
||||
|
"body": ["{% templatetag $1 %}"] |
||||
|
}, |
||||
|
"url": { |
||||
|
"prefix": "url", |
||||
|
"description": "url tag django template", |
||||
|
"body": ["{% url $1 %}"] |
||||
|
}, |
||||
|
"verbatim": { |
||||
|
"prefix": "verbatim", |
||||
|
"description": "verbatim tag django template", |
||||
|
"body": ["{% verbatim %}", " $1", "{% endverbatim %}"] |
||||
|
}, |
||||
|
"widthratio": { |
||||
|
"prefix": "widthratio", |
||||
|
"description": "widthratio tag django template", |
||||
|
"body": ["{% widthratio ${this_value} max_value 100 %}"] |
||||
|
}, |
||||
|
"with": { |
||||
|
"prefix": "with", |
||||
|
"description": "with tag django template", |
||||
|
"body": ["{% with $1 as %}", " ", "{% endwith %}"] |
||||
|
}, |
||||
|
"trans": { |
||||
|
"prefix": "trans", |
||||
|
"description": "translate tag django template", |
||||
|
"body": ["{% translate \"$1\" %}"] |
||||
|
}, |
||||
|
"blocktrans": { |
||||
|
"prefix": "blocktrans", |
||||
|
"description": "blocktrans tag django template", |
||||
|
"body": ["{% blocktrans %}", " $1", "{% endblocktrans %}"] |
||||
|
}, |
||||
|
"super": { |
||||
|
"prefix": "super", |
||||
|
"description": "Block super", |
||||
|
"body": ["{{ block.super }}"] |
||||
|
}, |
||||
|
"extrahead": { |
||||
|
"prefix": "extrahead", |
||||
|
"description": "Extrahead no oficial tag", |
||||
|
"body": ["{% block extrahead %}", " $1", "{% endblock extrahead %}"] |
||||
|
}, |
||||
|
"extrastyle": { |
||||
|
"prefix": "extrastyle", |
||||
|
"description": "Extrastyle no oficial Tag", |
||||
|
"body": ["{% block extrahead %}", " $1", "{% endblock extrahead %}"] |
||||
|
}, |
||||
|
"var": { |
||||
|
"prefix": "var", |
||||
|
"description": "Variable autocomplete", |
||||
|
"body": ["{{ $1 }}"] |
||||
|
}, |
||||
|
"tag": { |
||||
|
"prefix": "tag", |
||||
|
"description": "tag autocomplete no oficial", |
||||
|
"body": ["{% $1 %}"] |
||||
|
}, |
||||
|
"staticurl": { |
||||
|
"prefix": "staticurl", |
||||
|
"description": "STATIC_URL no oficial var", |
||||
|
"body": ["{{ STATIC_URL }}"] |
||||
|
}, |
||||
|
"mediaurl": { |
||||
|
"prefix": "mediaurl", |
||||
|
"description": "", |
||||
|
"body": ["{{ MEDIA_URL }}"] |
||||
|
}, |
||||
|
"template_tag": { |
||||
|
"prefix": "dtt", |
||||
|
"description": "Django template tag", |
||||
|
"body": ["{% $1 %}"] |
||||
|
}, |
||||
|
"csrfmiddlewaretoken": { |
||||
|
"prefix": "csrfmiddlewaretoken", |
||||
|
"description": "Django csrf token", |
||||
|
"body": ["csrfmiddlewaretoken: $(\"input[name='csrfmiddlewaretoken']\").val()"] |
||||
|
}, |
||||
|
"render_form": { |
||||
|
"prefix": "render_form", |
||||
|
"description": "Django render form", |
||||
|
"body": ["{% render_form $1 %}"] |
||||
|
}, |
||||
|
"render_table": { |
||||
|
"prefix": "render_table", |
||||
|
"description": "Django render table", |
||||
|
"body": ["{% render_table $1 %}"] |
||||
|
} |
||||
|
} |
File diff suppressed because it is too large
@ -0,0 +1,122 @@ |
|||||
|
{ |
||||
|
"main": { |
||||
|
"prefix": "fmain", |
||||
|
"description": "main function", |
||||
|
"body": ["package main\n", "func main() {", "\t$1", "}"] |
||||
|
}, |
||||
|
"basicmainfile": { |
||||
|
"prefix": "basic", |
||||
|
"description": "basic main file", |
||||
|
"body": [ |
||||
|
"package main\n", |
||||
|
"import (", |
||||
|
"\t\"log\"", |
||||
|
"\t\"net/http\"", |
||||
|
"\t\"os\"\n", |
||||
|
"\t\"github.com/go-chi/chi\"", |
||||
|
"\t\"github.com/go-chi/cors\"", |
||||
|
"\t\"github.com/joho/godotenv\"", |
||||
|
")\n", |
||||
|
"func main() {", |
||||
|
"\tgodotenv.Load(\".env\")\n", |
||||
|
"\tport := os.Getenv(\"PORT\")", |
||||
|
"\tif port == \"\" {", |
||||
|
"\t\tlog.Fatal(\"PORT environment variable is not set\")", |
||||
|
"\t}\n", |
||||
|
"\trouter := chi.NewRouter()\n", |
||||
|
"\trouter.Use(cors.Handler(cors.Options{", |
||||
|
"\t\tAllowedOrigins: []string{\"https://*\", \"http://*\"},", |
||||
|
"\t\tAllowedMethods: []string{\"GET\", \"POST\", \"PUT\", \"DELETE\", \"OPTIONS\"},", |
||||
|
"\t\tAllowedHeaders: []string{\"*\"},", |
||||
|
"\t\tExposedHeaders: []string{\"Link\"},", |
||||
|
"\t\tAllowCredentials: false,", |
||||
|
"\t\tMaxAge: 300,", |
||||
|
"\t}))\n", |
||||
|
"\tv1Router := chi.NewRouter()", |
||||
|
"\tv1Router.Get(\"/healthz\", handlerReadiness)", |
||||
|
"\tv1Router.Get(\"/err\", handlerErr)\n", |
||||
|
"\trouter.Mount(\"/v1\", v1Router)", |
||||
|
"\tsrv := &http.Server{", |
||||
|
"\t\tAddr: \":\" + port,", |
||||
|
"\t\tHandler: router,", |
||||
|
"\t}\n", |
||||
|
"\tfileServer := http.FileServer(http.Dir(\"./static/\"))", |
||||
|
"\tmux.Handle(\"/static/*\", http.StripPrefix(\"/static\", fileServer))\n", |
||||
|
"\tlog.Printf(\"Serving on port: %s\\n\", port)", |
||||
|
"\tlog.Fatal(srv.ListenAndServe())", |
||||
|
"}" |
||||
|
] |
||||
|
}, |
||||
|
"error": { |
||||
|
"prefix": "ife", |
||||
|
"description": "if statment for error", |
||||
|
"body": ["if err != nil {", "\t$1", "}"] |
||||
|
}, |
||||
|
"println": { |
||||
|
"prefix": "pl", |
||||
|
"description": "fmt.Println", |
||||
|
"body": ["fmt.Println(\"$1\")"] |
||||
|
}, |
||||
|
"sprintf": { |
||||
|
"prefix": "spf", |
||||
|
"description": "fmt.Sprintf", |
||||
|
"body": ["fmt.Sprintf(\"$1\")"] |
||||
|
}, |
||||
|
"handler": { |
||||
|
"prefix": "hand", |
||||
|
"description": "http.Handler", |
||||
|
"body": ["func $1(w http.ResponseWriter, r *http.Request) {", "\t", "}"] |
||||
|
}, |
||||
|
"chirouter": { |
||||
|
"prefix": "chi", |
||||
|
"description": "import for chi router", |
||||
|
"body": ["github.com/go-chi/chi/v5"] |
||||
|
}, |
||||
|
"godotenv": { |
||||
|
"prefix": "godotenv", |
||||
|
"description": "Go dot env", |
||||
|
"body": ["\"github.com/joho/godotenv\""] |
||||
|
}, |
||||
|
"potgresdriver": { |
||||
|
"prefix": "postgresdriver", |
||||
|
"description": "Postgres Driver", |
||||
|
"body": ["\"https://github.com/lib/pq\""] |
||||
|
}, |
||||
|
"import": { |
||||
|
"prefix": "impt", |
||||
|
"description": "import tag", |
||||
|
"body": ["import (", "\t\"$1\"", ")\n"] |
||||
|
}, |
||||
|
"funcwithreceiver": { |
||||
|
"prefix": "fr", |
||||
|
"description": "Function with some receiver", |
||||
|
"body": ["func ($1 *$2) $3 {", "\t", "}"] |
||||
|
}, |
||||
|
"sqlcontext": { |
||||
|
"prefix": "ctx", |
||||
|
"description": "context with timeout", |
||||
|
"body": [ |
||||
|
"ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)\n", |
||||
|
"defer cancel()\n" |
||||
|
] |
||||
|
}, |
||||
|
"fecho": { |
||||
|
"prefix": "fecho", |
||||
|
"description": "echo with fasthttp", |
||||
|
"body": [ |
||||
|
"package main\n", |
||||
|
"import (", |
||||
|
"\t\"net/http\"", |
||||
|
"\t\"github.com/labstack/echo/v4\"", |
||||
|
")\n", |
||||
|
"func main() {", |
||||
|
"\te := echo.New()\n", |
||||
|
"\te.GET(\"/\", func(c echo.Context) error {", |
||||
|
"\t\treturn c.String(http.StatusOK, \"Hello, World!\")", |
||||
|
"\t})\n", |
||||
|
"\te.Static(\"/static\", \"static\")", |
||||
|
"\te.Logger.Fatal(e.Start(\":8000\"))", |
||||
|
"}" |
||||
|
] |
||||
|
} |
||||
|
} |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,20 @@ |
|||||
|
{ |
||||
|
"command": { |
||||
|
"prefix": "cmd", |
||||
|
"description": "create command tag", |
||||
|
"body": [ |
||||
|
"```$1", |
||||
|
"$2", |
||||
|
"```" |
||||
|
] |
||||
|
}, |
||||
|
"bashcommand": { |
||||
|
"prefix": "bash", |
||||
|
"description": "create bash command tag", |
||||
|
"body": [ |
||||
|
"```bash", |
||||
|
"$1", |
||||
|
"```" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,55 @@ |
|||||
|
{ |
||||
|
"name": "nvim-snippets", |
||||
|
"author": "LucasF", |
||||
|
"engines": { |
||||
|
"vscode": "^1.11.0" |
||||
|
}, |
||||
|
"contributes": { |
||||
|
"snippets": [ |
||||
|
{ |
||||
|
"language": "python", |
||||
|
"path": "./python.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "python", |
||||
|
"path": "./django-python.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "htmldjango", |
||||
|
"path": "./django.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "htmldjango", |
||||
|
"path": "./bootstrap.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "htmldjango", |
||||
|
"path": "./dripicons.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "htmldjango", |
||||
|
"path": "./hero_outline.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "htmldjango", |
||||
|
"path": "./material.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "htmldjango", |
||||
|
"path": "./hero_solid.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "go", |
||||
|
"path": "./golang.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "sql", |
||||
|
"path": "./sql.json" |
||||
|
}, |
||||
|
{ |
||||
|
"language": "markdown", |
||||
|
"path": "./md.json" |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
{ |
||||
|
"ifmain": { |
||||
|
"prefix": "ifmain", |
||||
|
"description": "create basic function with if __name__ == \"__main__\"", |
||||
|
"body": [ |
||||
|
"def execute():", |
||||
|
"\t${1}", |
||||
|
"\n\n", |
||||
|
"if __name__ == \"__main__\":", |
||||
|
"\texecute()" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,25 @@ |
|||||
|
{ |
||||
|
"goosesql": { |
||||
|
"prefix": "goosesql", |
||||
|
"description": "create up and down comments", |
||||
|
"body": [ |
||||
|
"-- +goose Up\n", |
||||
|
"-- +goose Down\n" |
||||
|
] |
||||
|
}, |
||||
|
"goosetable": { |
||||
|
"prefix": "goosetable", |
||||
|
"description": "create sql table", |
||||
|
"body": [ |
||||
|
"-- +goose Up\n", |
||||
|
"CREATE TABLE $1 (", |
||||
|
"\tid UUID PRIMARY KEY,", |
||||
|
"\tcreated_at TIMESTAMP NOT NULL,", |
||||
|
"\tupdated_at TIMESTAMP NOT NULL,", |
||||
|
"\tname TEXT NOT NULL", |
||||
|
");\n", |
||||
|
"-- +goose Down\n", |
||||
|
"DROP TABLE $1;" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
--- |
||||
|
base: lua51 |
||||
|
|
||||
|
globals: |
||||
|
vim: |
||||
|
any: true |
@ -0,0 +1,8 @@ |
|||||
|
std = "neovim" |
||||
|
|
||||
|
[rules] |
||||
|
global_usage = "allow" |
||||
|
if_same_then_else = "allow" |
||||
|
incorrect_standard_library_use = "allow" |
||||
|
mixed_table = "allow" |
||||
|
multiple_statements = "allow" |
Loading…
Reference in new issue