1
Fork 0

More snippets for purescript and stuff

This commit is contained in:
Matei Adriel 2022-08-08 17:25:54 +03:00
parent 4b3c896343
commit 2497c51550
5 changed files with 108 additions and 63 deletions

View file

@ -25,6 +25,7 @@ function M.setup()
-- Create chords -- Create chords
if arpeggio ~= nil then if arpeggio ~= nil then
arpeggio.chord("n", "vs", "<C-w>v") -- Create vertical split
arpeggio.chord("n", "vs", "<C-w>v") -- Create vertical split arpeggio.chord("n", "vs", "<C-w>v") -- Create vertical split
arpeggio.chord("n", "ji", ":w<cr>") -- Saving arpeggio.chord("n", "ji", ":w<cr>") -- Saving
arpeggio.chord("i", "jk", "<Esc>") -- Remap Esc to jk arpeggio.chord("i", "jk", "<Esc>") -- Remap Esc to jk

View file

@ -4,85 +4,86 @@ local arpeggio = require("my.plugins.arpeggio")
local M = {} local M = {}
local bindings = { local bindings = {
builtin = { builtin = {
-- Open files with control + P -- Open files with control + P
find_files = "<c-P>", find_files = "<c-P>",
-- Search through files with control + F -- Search through files with control + F
live_grep = "<c-F>", live_grep = "<c-F>",
-- See diagnostics with space + d -- See diagnostics with space + d
diagnostics = "<Leader>d", diagnostics = "<Leader>d",
lsp_document_symbols = { chord = 1, key = "lds" },
-- Open a list with all the pickers -- Open a list with all the pickers
builtin = "<Leader>t", builtin = "<Leader>t",
-- List function, var names etc -- List function, var names etc
treesitter = "<Leader>s", treesitter = "<Leader>s",
-- Git stuff -- Git stuff
git_commits = "<Leader>gj", git_commits = "<Leader>gj",
git_branches = "<Leader>gk" git_branches = "<Leader>gk"
}, },
["extensions.file_browser.file_browser"] = {chord = 1, key = "jp"}, ["extensions.file_browser.file_browser"] = { chord = 1, key = "jp" },
extensions = { extensions = {
unicode = { unicode = {
picker = {mode = "i", kind = "dropdown", key = "ui", chord = 1} picker = { mode = "i", kind = "dropdown", key = "ui", chord = 1 }
}
} }
}
} }
local function setupKeybinds(obj, path) local function setupKeybinds(obj, path)
if path == nil then path = "" end if path == nil then path = "" end
for name, keybinds in pairs(obj) do for name, keybinds in pairs(obj) do
if (type(keybinds) == "table") and keybinds.key == nil then if (type(keybinds) == "table") and keybinds.key == nil then
-- This means we found a table of keybinds, so we go deeper -- This means we found a table of keybinds, so we go deeper
setupKeybinds(keybinds, path .. "." .. name) setupKeybinds(keybinds, path .. "." .. name)
else else
local config = keybinds local config = keybinds
local pickerArgument = "" local pickerArgument = ""
local key = config local key = config
local mode = "n" local mode = "n"
local bind = mapSilent local bind = mapSilent
if type(config) == "table" then if type(config) == "table" then
key = config.key key = config.key
if config.mode ~= nil then mode = config.mode end if config.mode ~= nil then mode = config.mode end
if config.kind ~= nil then if config.kind ~= nil then
pickerArgument = "require('telescope.themes').get_" .. pickerArgument = "require('telescope.themes').get_" ..
config.kind .. "({})" config.kind .. "({})"
end
if config.chord then
-- Useful for insert mode bindings
bind = arpeggio.chordSilent
end
end
-- Maps the keybind to the action
bind(mode, key,
"<cmd>lua require('telescope" .. path .. "')." .. name .. "(" ..
pickerArgument .. ")<CR>")
end end
if config.chord then
-- Useful for insert mode bindings
bind = arpeggio.chordSilent
end
end
-- Maps the keybind to the action
bind(mode, key,
"<cmd>lua require('telescope" .. path .. "')." .. name .. "(" ..
pickerArgument .. ")<CR>")
end end
end
end end
function M.setup() function M.setup()
setupKeybinds(bindings) setupKeybinds(bindings)
local settings = { local settings = {
defaults = {mappings = {i = {["<C-h>"] = "which_key"}}}, defaults = { mappings = { i = { ["<C-h>"] = "which_key" } } },
pickers = {find_files = {hidden = true}}, pickers = { find_files = { hidden = true } },
extensions = { extensions = {
file_browser = { file_browser = {
mappings = { mappings = {
-- Comment so this does not get collapsed -- Comment so this does not get collapsed
}
}
} }
}
} }
}
require("telescope").setup(settings) require("telescope").setup(settings)
require("telescope").load_extension "file_browser" require("telescope").load_extension "file_browser"
end end
return M return M

View file

@ -1,6 +1,6 @@
{ {
"Derive newtype instance": { "Derive newtype instance": {
"prefix": "nderive", "prefix": "gnderive",
"description": "Use newtype deriving on any typeclass", "description": "Use newtype deriving on any typeclass",
"body": "derive newtype instance $0 $3 $2" "body": "derive newtype instance $0 $3 $2"
}, },
@ -13,7 +13,7 @@
] ]
}, },
"Generic": { "Generic": {
"prefix": "generic", "prefix": "dgeneric",
"description": "Generate the generic instance for a type", "description": "Generate the generic instance for a type",
"body": "derive instance Generic $1 _" "body": "derive instance Generic $1 _"
}, },
@ -52,8 +52,26 @@
] ]
}, },
"Functor": { "Functor": {
"prefix": "functor", "prefix": "dfunctor",
"description": "Derive a Functor instance", "description": "Derive a Functor instance",
"body": "derive instance Functor $1$0" "body": "derive instance Functor $1$0"
},
"Eq": {
"prefix": "deq",
"description": "Derive an Eq instance",
"body": "derive instance Eq $1$0"
},
"Ord": {
"prefix": "dord",
"description": "Derive an Ord instance",
"body": "derive instance Ord $1$0"
},
"Eq & Ord": {
"prefix": "deqord",
"description": "Derive an Eq and an Ord instance",
"body": [
"derive instance Eq $1",
"derive instance Ord $1$0"
]
} }
} }

View file

@ -33,5 +33,20 @@
"prefix": "impavar", "prefix": "impavar",
"description": "import AVar module", "description": "import AVar module",
"body": "import Effect.Aff.AVar as AV" "body": "import Effect.Aff.AVar as AV"
},
"Object": {
"prefix": "impobject",
"description": "import Foreign.Object module",
"body": "import Foreign.Object as Object"
},
"STObject": {
"prefix": "impstobject",
"description": "import STObject module",
"body": "import Foreign.Object.ST as STObject"
},
"Ref": {
"prefix": "impref",
"description": "import Effect.Ref module",
"body": "import Effect.Ref as Ref"
} }
} }

View file

@ -60,5 +60,15 @@
"-- | $0", "-- | $0",
"-- | ```" "-- | ```"
] ]
},
"Section": {
"prefix": "section",
"description": "Delimit a section using 10 dashes",
"body" : "---------- $0"
},
"Typeclass instances": {
"prefix": "sinstances",
"description": "Delimit a section which declares typeclass instances",
"body" : ["---------- Typeclass instances", "$0"]
} }
} }