37 Commits

Author SHA1 Message Date
Aly Raffauf
cd0e747f6a vscode: add mutable user settings 2026-09-11 21:08:12 -05:00
Felix Stupp
1cba40f931 vscode: refactor profile paths to use unified profileDir helper
Refactor code to remove duplicated code. The location of the profile directory dependent on the profile name was duplicated over several locations. This PR unifies this into one single helper function profileDir.
2026-06-28 21:50:51 -05:00
Felix Stupp
abeeea1221 vscode: fix userMcp option example syntax
literalExample with JSON code is wrong, changed to direct Nix attr
2026-06-28 21:50:04 -05:00
Austin Horstman
f96f717a47 vscode: support path literals in userSettings
programs.vscode.profiles.<name>.userSettings accepts either JSON settings or a path to a settings.json file. The update-check defaults were merged into userSettings before deciding whether to generate JSON or link a source file, so path values failed when Nix tried to apply // to them.

Skip those merges for path-like values and use the shared isPathLike helper for VS Code's source-or-generated JSON options so Nix paths, store path strings, and derivation outputs are handled consistently.

Fixes #7726
2026-06-10 13:10:31 -05:00
Malik
ebc55fd103 claude-code, codex, antigravity-cli, github-copilot-cli, opencode, vscode, zed-editor: use mcp lib
- use lib.hm.mcp.transformMcpServer for MCP integration
- Update tests to reflect new merged server configuration
2026-06-09 23:03:52 -05:00
Kevin Stone
274299642b vscode: make keybindings submodule freeform
vscode supports overrides per platform key combinations at `mac`, `win` and `linux`

Enables `freeformType = jsonFormat` in the keybindings submodule. This enables support for per-platform bindings and any other arbitrary keybinding attributes.

Code pointer: 83b7ce68a7/src/vs/workbench/services/keybinding/browser/keybindingService.ts (L105-L120)
2026-06-01 21:40:49 -05:00
Austin Horstman
355734d876 treewide: remove literalExpression where unneeded
`literalExpression` is intended just to signify code that needs to stay
a string that gets represented exactly as-is for docs. It has been
misused heavily and people get confused repeatedly on when or not to use
it because of the rampant misuse.
2026-05-17 21:43:25 -05:00
Seong Yong-ju
c909892de5 vscode: warn when package is a known fork and remove pname option
Existing configs setting `programs.vscode.package` to a fork package
(e.g. `pkgs.vscodium`) silently kept evaluating but wrote files to
Visual Studio Code's paths instead of the fork's. Detect known fork
pnames and emit an actionable warning pointing to the dedicated
module.

The `pname` option, previously used with `package = null`, no longer
has any effect since `nameShort`/`dataFolderName` are now factory
arguments. Replace it with `mkRemovedOptionModule` so the migration
fails loudly rather than silently.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:50:49 -05:00
Seong Yong-ju
26412a220b vscode: extract mkVscodeModule factory function
Extract the core vscode module logic into a reusable factory function
(mkVscodeModule.nix), following the established mkFirefoxModule pattern.
This is a pure refactor with no behavior change — programs.vscode
retains the same interface.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:50:49 -05:00
Benedikt Rips
71402c5df3 treewide: mark unused lambda arguments 2026-04-13 22:02:40 -05:00
Austin Horstman
11ad9d2e42 statix: enable useless_has_attr
Enable statix's useless_has_attr rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman
01ea51d706 treewide: use inherit for attribute assignments
This change converts redundant attribute assignments of the form `a =
a;` or `a = someSet.a;` into cleaner `inherit` statements. This reduces
verbosity and follows common Nix style for bringing attributes into
scope.

Statix Codes: W03 (manual_inherit), W04 (manual_inherit_from)

Also include statix and the rule in our configuration.
2026-04-08 14:47:48 -05:00
Ryan Horiguchi
051da45e96 vscode: add null package support 2026-03-26 16:41:41 -05:00
unlsycn
b593765639 vscode: fix extension path for antigravity
Standardize the extension installation path to `/share/vscode/extensions`
regardless of the package name.

Previously, setting the package name to 'antigravity' would change the
internal path to `/share/antigravity`, which caused a mismatch because
most upstream Nixpkgs extensions are hardcoded to install into
`/share/vscode/extensions`. This resulted in an empty or incomplete
extensions directory in the nix store.

Also added 'antigravity' to the list of packages requiring an
immutable extensions.json file.

Signed-off-by: unlsycn <unlsycn@unlsycn.com>
2026-02-01 14:28:27 +01:00
unlsycn
db9cf9232f vscode: add Antigravity support
Signed-off-by: unlsycn <unlsycn@unlsycn.com>
2026-01-25 15:49:30 -06:00
Ryan Horiguchi
5148e08046 vscode: fix argv.json path 2026-01-18 09:24:24 -06:00
Ryan Horiguchi
1c27557d99 vscode: add argv.json support 2026-01-17 21:32:44 -06:00
Austin Horstman
fa6de26b4d treewide: nixf-diagnose cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 16:30:04 -05:00
heyzec
1c75dd7022 vscode: don't break when profile name has spaces 2025-11-04 14:07:04 -06:00
Thierry Delafontaine
9ff9a94fd4 vscode: add mcp module integration 2025-11-03 20:25:16 -06:00
Ross Brunton
03f83f513d vscode: get paths from product.json
The VSCode packages contain a product.json which is used to determine
the extension and config dirs. When the package name is not known,
this change parses this file (using IFD) (which may appear in a few
places) and uses that to generate the paths.

This hopefully allows more VSCode derivatives to "just work" without
Home Manager updates.

Co-authored-by: andre4ik3 <andre4ik3@fastmail.com>
2025-10-04 12:18:50 +02:00
Ryan Horiguchi
ec73c06d34 vscode: add config and exension dir for kiro (#7825) 2025-09-16 22:11:12 -05:00
Louis Orleans
c23168acf5 vscode: specify full path
The script executes in `/usr/local/bin`, so specifying the full path to the `Library` dir is necessary.
2025-08-05 18:22:13 -05:00
Louis Orleans
9b59dcee0b vscode: quote path
`mkdir` had an unquoted variable, leading to errors when using paths with spaces (ie: `/Users/me/Library/Application Support/…`)
2025-08-05 18:22:13 -05:00
Austin Horstman
2b73c2fcca treewide: remove config dependency on docs (#7547)
Tested with rebased
https://github.com/nix-community/home-manager/pull/6411 so I could find
all instances of config usage in docs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2025-07-26 17:11:53 -05:00
Austin Horstman
b4752b0eda treewide: format with latest stable formatter
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-23 10:27:52 -05:00
Jacob S. Steward
7c6f7377cc vscode: enable defining mcp.json separate from settings.json (#7441)
VS Code 1.102 separates MCP configuration from `settings.json` to a profile-specific `mcp.json`. VS Code automatically performs this separation if MCP configuration is detected inside `settings.json` which conflicts with the immutability of the settings.json that home-manager supplies.
2025-07-11 20:33:17 -05:00
Austin Horstman
4fca600cb1 treewide: implement auto importing for modules
Reduce maintenance burden and increase efficiency by automatically
importing modules following a specific convention.

Co-authored-by: awwpotato <awwpotato@voidq.com>
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman
cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00
Austin Horstman
0b491b460f treewide: remove with lib (#6735)
Continuation of `with lib;` cleanup.
2025-03-31 22:32:16 -05:00
Reputable2772
e860bd49ea vscode: add profiles support (#5640)
Adds support for VSCode Profiles configuration. Allowing you to define custom extensions and settings per profile.
2025-02-22 10:58:27 -06:00
Emily
9f9e277b60 treewide: remove now-redundant lib.mdDoc calls
These (and the `*MD` functions apart from `literalMD`) are now no-ops
in nixpkgs and serve no purpose other than to add additional noise and
potentially mislead people into thinking unmarked DocBook documentation
will still be accepted.

Note that if backporting changes including documentation to 23.05,
the `mdDoc` calls will need to be re-added.

To reproduce this commit, run:

    $ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \
      nix shell nixpkgs#coreutils \
      -c find . -name '*.nix' \
      -exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \
      --strip {} +
    $ ./format
2023-07-17 18:49:09 +01:00
Emily
36a53d9f26 treewide: convert all option docs to Markdown
This process was automated by [my fork of `nix-doc-munge`]. All
conversions were automatically checked to produce the same DocBook
result when converted back, modulo minor typographical/formatting
differences on the acceptable-to-desirable spectrum.

To reproduce this commit, run:

  $ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \
    nix shell nixpkgs#coreutils \
    -c find . -name '*.nix' \
    -exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \
    {} +
  $ ./format

[my fork of `nix-doc-munge`]: https://github.com/emilazy/nix-doc-munge/tree/home-manager
2023-07-17 18:40:56 +01:00
Emily
3228f92b90 treewide: manually convert some docs to Markdown
These files all have options that trip up the `nix-doc-munge`
conversion tool for one reason or another (syntax that clashes with
Markdown, options that were already using Markdown syntax despite not
being marked that way, output that differs slightly after conversion,
syntax too elaborate to convert with some cheap regular expressions,
...). Translate them manually and do a little copyediting to options
in the vicinity while we're at it.
2023-07-17 16:49:35 +01:00
Naïm Favier
bd11e2c5e6 Replace usage of literalExample
Instead use the new function `literalExpression`. See

  https://github.com/NixOS/nixpkgs/pull/136909
2021-10-13 00:16:10 +02:00
Robert Helgesson
45abf3d38a Apply nixfmt on many files 2020-02-02 01:07:28 +01:00
Robert Hensing
c5f230e682 vscode.haskell: add module
- Haskell IDE Engine integration
- Syntax highlighting
2019-04-27 01:00:57 +02:00