199 lines
6 KiB
Nix
199 lines
6 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
programs.vscode = {
|
|
enable = true;
|
|
package = pkgs.vscodium;
|
|
mutableExtensionsDir = false;
|
|
profiles.default = {
|
|
enableUpdateCheck = false;
|
|
enableExtensionUpdateCheck = false;
|
|
extensions =
|
|
# if unfree
|
|
# with pkgs.vscode-marketplace;
|
|
(
|
|
with pkgs.open-vsx;
|
|
[
|
|
vscodevim.vim
|
|
jnoortheen.nix-ide
|
|
github.github-vscode-theme
|
|
rust-lang.rust-analyzer
|
|
shd101wyy.markdown-preview-enhanced
|
|
alefragnani.bookmarks
|
|
tomrijndorp.find-it-faster
|
|
streetsidesoftware.code-spell-checker
|
|
emilast.logfilehighlighter
|
|
]
|
|
);
|
|
userSettings =
|
|
let
|
|
vimCommonKeyBindings = [
|
|
{
|
|
"before" = [ "C-a" ];
|
|
"commands" = [ "cursorHome" ];
|
|
}
|
|
{
|
|
"before" = [ "C-e" ];
|
|
"commands" = [ "cursorEnd" ];
|
|
}
|
|
];
|
|
in
|
|
{
|
|
"workbench.colorTheme" = "GitHub Dark Default";
|
|
"workbench.startupEditor" = "none";
|
|
"workbench.enableExperiments" = false;
|
|
"files.autoSave" = "onFocusChange";
|
|
"editor.fontFamily" = "IBM Plex Mono";
|
|
"editor.fontSize" = 15;
|
|
"editor.minimap.enabled" = false;
|
|
"window.zoomLevel" = 0.5;
|
|
"security.promptForLocalFileProtocolHandling" = false;
|
|
"security.promptForRemoteFileProtocolHandling" = false;
|
|
"explorer.confirmDelete" = false;
|
|
"explorer.confirmDragAndDrop" = false;
|
|
"editor.acceptSuggestionOnEnter" = "off";
|
|
"editor.acceptSuggestionOnCommitCharacter" = false;
|
|
"git.openRepositoryInParentFolders" = "never";
|
|
"git.ignoreLimitWarning" = true;
|
|
"extensions.ignoreRecommendations" = true;
|
|
"telemetry.enableTelemetry" = false;
|
|
"telemetry.telemetryLevel" = "off";
|
|
"window.titleBarStyle" = "custom";
|
|
|
|
# terminal stuff
|
|
"terminal.integrated.cursorBlinking" = true;
|
|
"terminal.integrated.cursorStyle" = "line";
|
|
"terminal.integrated.customGlyphs" = false;
|
|
"terminal.integrated.env.linux" = {
|
|
# https://github.com/tomrijndorp/vscode-finditfaster/issues/112#issuecomment-2475227546
|
|
FZF_DEFAULT_OPTS = "--bind ctrl-n:down,ctrl-p:up";
|
|
};
|
|
# don't let the workbench handle terminal keys like ctrl+n and friends
|
|
"terminal.integrated.sendKeybindingsToShell" = true;
|
|
"terminal.integrated.allowChords" = false;
|
|
|
|
"markdown-preview-enhanced.previewTheme" = "github-dark.css";
|
|
"nix.enableLanguageServer" = true;
|
|
"nix.serverPath" = "nil";
|
|
"bookmarks.saveBookmarksInProject" = true;
|
|
|
|
"cSpell.enabledFileTypes" = {
|
|
"markdown" = true;
|
|
"*" = false;
|
|
};
|
|
|
|
# vim stuff
|
|
"vim.leader" = ",";
|
|
"vim.normalModeKeyBindings" = vimCommonKeyBindings ++ [
|
|
{
|
|
"before" = [ ";" ];
|
|
"after" = [ ":" ];
|
|
"silent" = true;
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"m"
|
|
];
|
|
"commands" = [ "bookmarks.toggle" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"l"
|
|
];
|
|
"commands" = [ "bookmarks.toggleLabeled" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"b"
|
|
];
|
|
"commands" = [ "bookmarks.list" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"s"
|
|
];
|
|
"commands" = [ "workbench.action.toggleSidebarVisibility" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"f"
|
|
"f"
|
|
];
|
|
"commands" = [ "find-it-faster.findFiles" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"f"
|
|
"g"
|
|
];
|
|
"commands" = [ "find-it-faster.findWithinFiles" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<leader>"
|
|
"f"
|
|
"t"
|
|
];
|
|
"commands" = [ "find-it-faster.findWithinFilesWithType" ];
|
|
}
|
|
# "gd" for definitions is by default
|
|
{
|
|
"before" = [
|
|
"g"
|
|
"r"
|
|
];
|
|
"commands" = [ "editor.action.goToReferences" ];
|
|
}
|
|
# the default is weird when you need to go back within a file
|
|
{
|
|
"before" = [ "C-o" ];
|
|
"commands" = [ "workbench.action.navigateBack" ];
|
|
}
|
|
{
|
|
"before" = [ "C-i" ];
|
|
"commands" = [ "workbench.action.navigateForward" ];
|
|
}
|
|
# insert line without leaving normal mode
|
|
{
|
|
"before" = [
|
|
"<space>"
|
|
"o"
|
|
];
|
|
"commands" = [ "editor.action.insertLineAfter" ];
|
|
}
|
|
{
|
|
"before" = [
|
|
"<space>"
|
|
"O"
|
|
];
|
|
"commands" = [ "editor.action.insertLineBefore" ];
|
|
}
|
|
];
|
|
"vim.insertModeKeyBindings" = vimCommonKeyBindings ++ [
|
|
{
|
|
"before" = [ "C-k" ];
|
|
"commands" = [ "acceptSelectedSuggestion" ];
|
|
}
|
|
];
|
|
"vim.visualModeKeyBindings" = vimCommonKeyBindings ++ [
|
|
{
|
|
"before" = [ ">" ];
|
|
"commands" = [ "editor.action.indentLines" ];
|
|
}
|
|
{
|
|
"before" = [ "<" ];
|
|
"commands" = [ "editor.action.outdentLines" ];
|
|
}
|
|
];
|
|
"extensions.experimental.affinity" = {
|
|
"vscodevim.vim" = 1;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|