{ pkgs, ... }: { # https://nixos.wiki/wiki/Visual_Studio_Code
  programs.vscode = {
    enable = true;

    # Что-то из этого может пригодиться, если хочу ставить пакеты без декларативности
    # package = pkgs.vscode.fhs; # Почему в вики написано ".fhs", если пакет называется "-fhs"?
    # package = pkgs.vscode-with-extensions; # Мб это надо?


    # Чтоб узнать sha256, я скачал расширение напрямую с сайта маркетплейса
    # А потом в терминале написал "sha256sum filename"
    # В оф репе юзают такой скрипт для установки расширений, не знаю поможет ли
    # https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vscode/extensions/update_installed_exts.sh#L34
    # Имя и паблишер берутся из ссылки. После "?itemName" идёт паблишер.нейм
    extensions = with pkgs.vscode-extensions; [
      jdinhlife.gruvbox # Gruvbox theme
      eamodio.gitlens # GitLens - Git supercharged
      jnoortheen.nix-ide # Nix language support - syntax highlighting, formatting, and error reporting.
      sumneko.lua # Lua language server
      naumovs.color-highlight # Highlight web colors in your editor
      tamasfe.even-better-toml # Fully-featured TOML support
      ms-python.python # Python language support
      golang.go # Rich Go language support
      mechatroner.rainbow-csv # Rainbow syntax higlighting for CSV and TSV files
      # redhat.vscode-xml # XML Language Support by Red Hat
      # dotjoshjohnson.xml # XML Tools
      # bradlc.vscode-tailwindcss # Tailwind CSS tooling
    ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ # Руками с гита ставить
      { # https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode
        name = "language-hugo-vscode";
        publisher = "budparr";
        version = "1.3.1";
        sha256 = "f5da7cfe02c06fc3899e6b0b55b380280619e7085abcf5b6024f9684ba846c99";
      }
      { # https://marketplace.visualstudio.com/items?itemName=dlasagno.rasi
        name = "rasi";
        publisher = "dlasagno";
        version = "1.0.0";
        sha256 = "b3ad1a95e8f770d01b489c6c4652111364216baa00b2670e05b5a8aa9fb0e9f9";
      }
      # { # https://marketplace.visualstudio.com/items?itemName=a-h.templ
      #   name = "templ";
      #   publisher = "a-h";
      #   version = "0.0.29";
      #   sha256 = "459fbec312f63aa061de188b030288c3940b8d4fe29ac2bb8ab4141db27fb6a3";
      # }
      # { # https://marketplace.visualstudio.com/items?itemName=CraigRBroughton.htmx-attributes
      #   name = "htmx-attributes";
      #   publisher = "CraigRBroughton";
      #   version = "0.8.0";
      #   sha256 = "4ec7a63d992ad99d77fef6a145a3fbcf6d3a0496826754d1e8e56fe9a783bf29";
      # }
      # { # https://marketplace.visualstudio.com/items?itemName=Codeium.codeium
      #   name = "codeium";
      #   publisher = "Codeium";
      #   version = "1.29.2";
      #   sha256 = "86e075c4fd0d60f7fa7b32e497260a86a94ec812d95e3d9f058ce45e77648f89";
      # }
    ];

    # userSettings = {
    #   "telemetry.telemetryLevel" = "off";
    #   "update.showReleaseNotes" = false;
    #   "workbench.colorTheme" = "Gruvbox Dark Medium";
    #   "editor.fontFamily" = "JetBrainsMono Nerd Font";
    #   "editor.lineNumbers" = "relative";
    # };

    # globalSnippets = {};

    # languageSnippets = {};

    # keybindings = [
    #   {
    #     key = "ctrl+c";
    #     command = "editor.action.clipboardCopyAction";
    #     when = "textInputFocus";
    #   }
    # ];
  };
}
