186 lines
4.8 KiB
Nix
186 lines
4.8 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
repoFlake,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
pkgsVscodium = import repoFlake.inputs.nixpkgs-vscodium { inherit (pkgs) system config; };
|
|
in
|
|
{
|
|
programs.vscode = {
|
|
enable = true;
|
|
package = pkgsVscodium.vscodium;
|
|
extensions =
|
|
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
|
|
]
|
|
)
|
|
++ (
|
|
let
|
|
nix4vscodeToml = pkgs.writeText "nix4vscode.toml" ''
|
|
vscode_version = "${config.programs.vscode.package.version}"
|
|
|
|
[[extensions]]
|
|
publisher_name = "FelixZeller"
|
|
extension_name = "markdown-oxide"
|
|
|
|
[[extensions]]
|
|
publisher_name = "ibecker"
|
|
extension_name = "treefmt-vscode"
|
|
'';
|
|
nix4vscodeNix =
|
|
pkgs.runCommand "nix4vscode.nix"
|
|
{
|
|
# nix4vscode needs internet access
|
|
__noChroot = true;
|
|
requiredSystemFeatures = [ "recursive-nix" ];
|
|
buildInputs = [
|
|
pkgs.nix
|
|
pkgs.cacert
|
|
(pkgs.callPackage "${repoFlake.inputs.nix4vscode.outPath}/nix/package.nix" { })
|
|
# pkgs.strace
|
|
];
|
|
# outputHashAlgo = "sha256";
|
|
# outputHashMode = "recursive";
|
|
# outputHash = lib.fakeSha256;
|
|
}
|
|
''
|
|
# set -x
|
|
# export RUST_BACKTRACE=full
|
|
# export RUST_LOG=trace
|
|
export HOME=$(mktemp -d)
|
|
# strace -ffZyyY
|
|
nix4vscode ${nix4vscodeToml} > $out
|
|
'';
|
|
nix4vscodeExtensions = builtins.removeAttrs (pkgs.callPackage nix4vscodeNix { }) [
|
|
"override"
|
|
"overrideDerivation"
|
|
];
|
|
nix4vscodeExtensions' = lib.attrsets.mapAttrsToList (
|
|
_: v: builtins.head (builtins.attrValues v)
|
|
) nix4vscodeExtensions;
|
|
in
|
|
nix4vscodeExtensions'
|
|
);
|
|
mutableExtensionsDir = true;
|
|
};
|
|
|
|
home.packages = [
|
|
pkgs.nil
|
|
pkgs.nixfmt-rfc-style
|
|
];
|
|
}
|
|
# 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
|