infra/nix/home-manager/programs/vscode/default.nix

154 lines
3.9 KiB
Nix

{
pkgs,
nodeFlake,
repoFlake,
...
}: let
pkgsVscodium = import repoFlake.inputs.nixpkgs-vscodium {inherit (pkgs) system config;};
in {
programs.vscode = {
enable = true;
package = pkgsVscodium.vscodium;
extensions =
[
# TODO: how can i install (this) vsix(s) directly?
# (builtins.fetchurl {
# # https://open-vsx.org/extension/jeanp413/open-remote-ssh
# url = "https://open-vsx.org/api/jeanp413/open-remote-ssh/0.0.45/file/jeanp413.open-remote-ssh-0.0.45.vsix";
# sha256 = "1qc1qsahfx1nvznq4adplx63w5d94xhafngv76vnqjjbzhv991v2";
# })
]
++ (with pkgsVscodium.vscode-extensions;
[
eamodio.gitlens
mkhl.direnv
tomoki1207.pdf
vscodevim.vim
# bbenoist.nix
jnoortheen.nix-ide
ms-vscode.theme-tomorrowkit
nonylene.dark-molokai-theme
ms-python.vscode-pylance
# TODO: these are not in nixpkgs
# fredwangwang.vscode-hcl-format
# hashicorp.hcl
# mindaro-dev.file-downloader
# ms-vscode.remote-explorer
# TODO: not compatible with vscodium
# ms-vscode-remote.remote-ssh
]
++ (let
extensions = repoFlake.inputs.nix-vscode-extensions.extensions.${pkgs.system};
in (
with extensions.vscode-marketplace;
with extensions.vscode-marketplace-release; [
tamasfe.even-better-toml
serayuzgur.crates
rust-lang.rust-analyzer
swellaby.vscode-rust-test-adapter
golang.go
jeff-hykin.better-go-syntax
ibecker.treefmt-vscode
]
)))
++ [
(pkgsVscodium.vscode-utils.extensionFromVscodeMarketplace
{
name = "markdown-oxide";
publisher = "felixzeller";
version = "1.1.0";
sha256 = "07l37hkg106m3nl9530l7i39iw1kibckv1zi4n23gbp7srdrwbs3";
})
];
mutableExtensionsDir = true;
};
home.packages = [
pkgs.nixpkgs-fmt
pkgs.nil
];
}
# TODO: automate
### original list:
# 74th.Theme-NaturalContrast-With-HC
# AlanWalk.markdown-toc
# DiryoX.Paper-tmTheme
# Mit.Monokai-Polished
# Stephanvs.dot
# ZakCodes.rust-snippets
# aaron-bond.better-comments
# af4jm.vscode-icalendar
# akmittal.hugofy
# asciidoctor.asciidoctor-vscode
# bierner.markdown-preview-github-styles
# brian-yu.made-of-code
# bungcip.better-toml
# bwildeman.tabulous
# CoenraadS.bracket-pair-colorizer
# dawhite.mustache
# doctorrustynelson.vscode-nomnoml
# eamodio.gitlens
# ethansugar.monokai-light
# gerane.Theme-Monokai-Contrast
# gerane.Theme-snappy-light
# GitHub.vscode-pull-request-github
# golang.go
# hashicorp.terraform
# hawkeyegold.bonsai
# hdg.live-html-previewer
# JaimeOlivares.yuml
# James-Yu.latex-workshop
# jebbs.plantuml
# jeremyfa.tasks-chooser
# joaompinto.asciidoctor-vscode
# johndugan.contrast-theme
# k3a.theme-dark-plus-contrast
# kenhowardpdx.vscode-gist
# leizongmin.quick-open
# mechatroner.rainbow-csv
# mermade.openapi-lint
# mimarec.swagger-doc-viewer
# mitaki28.vscode-clang
# mohsen1.prettify-json
# ms-azuretools.vscode-docker
# ms-python.python
# ms-toolsai.jupyter
# ms-vscode.cpptools
# nocksock.vscode-quick-open-create
# oderwat.indent-rainbow
# paulofallon.phantypist
# qnsolutions.swaggitor
# redhat.vscode-yaml
# rozbo.papercolor-vscode
# rstuven.iferrblocks
# rust-lang.rust
# sashaweiss.bracket-jumper
# skellock.just
# steditor.line-endings
# streetsidesoftware.code-spell-checker
# streetsidesoftware.code-spell-checker-german
# sugarpirate.theme-tinacious-contrast
# sysoev.vscode-open-in-github
# tht13.html-preview-vscode
# tickleforce.scrolloff
# timonwong.shellcheck
# Tyriar.sort-lines
# vadimcn.vscode-lldb
# vscodevim.vim
# vthiery.prettify-selected-json
# webfreak.debug
# xaver.clang-format
# xmonader.vscode-capnp
# xyz.plsql-language
# yzane.markdown-pdf
# zxh404.vscode-proto3