Package Details: code-features 1.89.0-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: 52
Popularity: 0.193529
First Submitted: 2021-04-06 00:46 (UTC)
Last Updated: 2024-05-07 07:34 (UTC)

Required by (1)

Sources (3)

Pinned Comments

sainnhe commented on 2024-05-17 03:39 (UTC) (edited on 2024-05-17 03:39 (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 the maintainance

I'm a vim user, and I rarely use vscode. I created this package simply for fun. And for some reasons, I'm not using Arch Linux as my daily driver anymore.

I'll continue to maintain this package for a while until my old Arch Linux machine retires. If you want to become a maintainer of this package, feel free to contact me (i@sainnhe.dev).

Updating the package is very simple, you just need to run update.py in the root of this repository. The script will automatically update patch.json which contains the patch data.

Latest Comments

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

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
}

sainnhe commented on 2023-08-13 13:31 (UTC)

Upgrading notes for v1.81.1

The code has been refactored in python, upgrading requires manual interventions:

pacman -Rdd code code-features
pacman -S code code-features

Don't reinstall them, uninstall and install these packages instead.

Since the code has been refactored, you can easily modify the code to upgrade to a new version by yourself if I cannot update this package in time. Simply download the latest tarball from code.visualstudio.com and extract them, then run update.py to update patch.json (The usage is documented in update.py), and run makepkg --skipchecksums -i to rebuild and install this package.

Microsoft has introduced new detection method for Pylance extension, now this AUR package cannot bypass the version check of it. Although you can downgrade Pylance to a lower version to continue to use it, but I'd recommend to switch to a FOSS alternative instead (e.g. Pyright) because you'll never know what Microsoft will do in the future. Microsoft sucks :)

The data folder has changed to ~/.vscode because some extensions provided by Microsoft will explicitly use that folder, otherwise they won't work.

memchr commented on 2023-08-10 18:26 (UTC) (edited on 2023-08-10 18:49 (UTC) by memchr)

With vscode 1.81 for pylance it no longer works.

More specifically, it is the newer version of Pylance that refuses to work on the OSS version, M$ must have introduced new detection mechanism.

Interestingly, the crippled version was only released 23 hours ago as I was writing this. This means that you can install an older version (v2023.8.10) as a temporary workaround.

It can be installed using the Install Another Version option from the Extensions drop-down menu.

jamazi commented on 2023-06-21 17:03 (UTC)

@sainhe it would be great if you @DroidFreak32 patch too

sainnhe commented on 2022-12-14 15:19 (UTC)

@wooptoo:

  1. Add extension API proposals to product.json, this will fix some issues in certain extensions (e.g. pylance)

  2. Add support for VSCode built-in settings sync.