Package Details: code-features 1.103.1-1

Git Clone URL: https://aur.archlinux.org/code-features.git (read-only, click to copy)
Package Base: code-features
Description: Unblock some features in Code OSS
Upstream URL: https://github.com/microsoft/vscode
Keywords: vscode
Licenses: unknown
Conflicts: code-features
Provides: code-features
Submitter: sainnhe
Maintainer: sainnhe
Last Packager: sainnhe
Votes: 67
Popularity: 2.08
First Submitted: 2021-04-06 00:46 (UTC)
Last Updated: 2025-08-16 03:31 (UTC)

Dependencies (5)

Required by (1)

Sources (4)

Pinned Comments

sainnhe commented on 2024-11-01 14:53 (UTC) (edited on 2024-11-02 03:08 (UTC) by sainnhe)

New Command Available in 1.95.0-2

Now there is a new command /usr/bin/code-features-update that can update the patch to keep up with the official vscode release. You can use this command to manually update the patch when this package is out of date or some extensions don't work after an update in extra/code.

sainnhe commented on 2024-05-17 03:39 (UTC) (edited on 2024-10-26 10:10 (UTC) by sainnhe)

About this package

This package installs a hook that will patch product.json every time the code package is updated. The patch basically does the following:

  1. Syncs proposed APIs with the latest vscode release. Some extensions don't work in code oss because some specific APIs are not enabled in product.json.
  2. Enable built-in settings sync feature.
  3. Disable telemetry.
  4. Use ~/.vscode and ~/.Code instead of ~/.vscode-oss and ~/.Code OSS.

You might be confused why this package changes the data directory. There are two reasons:

  1. Some extensions (e.g. Pylance) require to use the data directory to work.
  2. Isolate settings sync data from the OSS version. People may want to install this package because they want to unlock some proprietary extensions, and may have some specific settings that only works with these extensions. Besides, this package will enable built-in sync feature, so isolating the settings may avoid some potential problems such as messing up your synced settings.

If you don't like this behavior, simply create a symlink.

About proprietary extensions

Proprietary extensions are not guaranteed to work, because some extensions will actively detect whether the current running environment is the official vscode release, and it's very hard to bypass their detection at all time.

If some extensions don't work, try:

  1. Run update.py in the project root. This scripts will update the patch to match the latest vscode release. Then execute makepkg -fsi to rebuild and install this package.
  2. Switch over a FOSS alternative, for example Pylance -> Basedpyright, C/C++ -> Clangd

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 Next › Last »

sainnhe commented on 2024-03-19 01:38 (UTC)

@felixc: IMO the objects in product.json that this package will modify don’t include any telemetry related parts. How do you check if telemetry is enabled? I’m going to investigate it.

felixc commented on 2024-03-18 12:34 (UTC) (edited on 2024-03-18 12:50 (UTC) by felixc)

I noticed that after installing this package, all telemetry gets activated which is probably not desired by users of the code package. Can it be set to off by default? thanks

volcomix commented on 2024-03-02 10:59 (UTC) (edited on 2024-03-02 10:59 (UTC) by volcomix)

@sainnhe: No worries, it's already so helpful that you maintain this package for us <3

The update fixed the issue, thanks a lot!

sainnhe commented on 2024-03-01 15:08 (UTC)

@volcomix: Sorry for late reply. I was too busy recently :(

I've updated the patch to the latest version, does this fix the issue for you?

volcomix commented on 2024-02-24 11:41 (UTC)

With the package code v1.86.2, there is an error in Jupyter notebooks when trying to select a kernel:

Error: Extension 'ms-toolsai.jupyter' CANNOT use API proposal: notebookVariableProvider.
Its package.json#enabledApiProposals-property declares: notebookDeprecated, notebookMessaging, notebookMime, notebookCellExecutionState, portsAttributes, quickPickSortByLabel, notebookKernelSource, interactiveWindow, notebookControllerAffinityHidden, contribNotebookStaticPreloads, quickPickItemTooltip, notebookExecution but NOT notebookVariableProvider.
 The missing proposal MUST be added and you must start in extension development mode or use the following command line switch: --enable-proposed-api ms-toolsai.jupyter

I fixed the issue locally by adding notebookVariableProvider to the extensionEnabledApiProposals for ms-toolsai.jupyter in my product.json file.

Could it make sense to update patch.json from this package by also adding notebookVariableProvider in the same place: https://aur.archlinux.org/cgit/aur.git/tree/patch.json?h=code-features#n489

Thanks!

oysstu commented on 2023-12-09 21:34 (UTC)

Has anyone gotten remote-SSH to work recently?

Whyhow commented on 2023-09-15 17:30 (UTC) (edited on 2023-09-15 18:47 (UTC) by Whyhow)

You can apparently get pylance to work by renaming .vscode/extensions/ms-python.vscode-pylance-2023.9.10/dist/extension.bundle.js to extension.bundle.js.bak

See https://github.com/VSCodium/vscodium/discussions/1641

MajorMayer commented on 2023-08-17 07:16 (UTC)

After the last update I needed to move all my "~/.config/Code - OSS" folder to "~/.config/Code" and (as stated below) "~/.vscode-oss" to "~/.vscode".

mtorromeo commented on 2023-08-16 07:19 (UTC) (edited on 2023-08-16 07:20 (UTC) by mtorromeo)

The install script could handle better the version upgrade and not require manual intervention:

pre_upgrade() {
  if [ "$(vercmp "$2" "1.81.1")" -lt 0 ]; then
    sed -i -e 's/^[[:blank:]]*"nameLong":.*/\t"nameLong": "Code - OSS",/' \
      -e 's/^[[:blank:]]*"tunnelApplicationName":.*/\t"tunnelApplicationName": "code-tunnel-oss",/' \
      -e '/^[[:blank:]]*"extensionEnabledApiProposals"/d' \
      -e '/^[[:blank:]]*"extensionSyncedKeys/d' \
      /usr/lib/code/product.json
  else
    /usr/share/code-features/patch.py code-features restore
  fi
}