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.26
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

1 2 3 4 5 Next › Last »

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.

neitsab commented on 2024-05-14 20:47 (UTC) (edited on 2024-05-14 20:47 (UTC) by neitsab)

@sainnhe Could you confirm whether or not the Remote - SSH extension works with Code - OSS with this installed (for me it's not the case but you never know), and maybe pin your answer so that newcomers to the topic will quickly find it? Thanks! 🙏

C0rn3j commented on 2024-04-10 08:42 (UTC)

Seems severely broken now that 1.88 is out.

2024-04-10 10:40:17.137 [warning] Via 'product.json#extensionEnabledApiProposals' extension 'ms-vscode.vscode-selfhost-test-provider' wants API proposal 'testCoverage' but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned.

2024-04-10 10:40:17.144 [warning] Via 'product.json#extensionEnabledApiProposals' extension 'ms-vscode.extension-test-runner' wants API proposal 'testCoverage' but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned.

2024-04-10 10:40:17.144 [warning] Via 'product.json#extensionEnabledApiProposals' extension 'vscjava.vscode-java-test' wants API proposal 'testCoverage' but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned.

2024-04-10 10:40:18.021 [error] Extension 'ms-python.debugpy' appears in product.json but enables LESS API proposals than the extension wants.
package.json (LOSES): portsAttributes, contribIssueReporter
product.json (WINS): portsAttributes

2024-04-10 10:40:18.021 [error] Extension 'ms-python.python' appears in product.json but enables LESS API proposals than the extension wants.
package.json (LOSES): contribEditorContentMenu, quickPickSortByLabel, testObserver, quickPickItemTooltip, terminalDataWriteEvent, terminalExecuteCommandEvent, contribIssueReporter
product.json (WINS): contribEditorContentMenu, quickPickSortByLabel, portsAttributes, handleIssueUri, testObserver, quickPickItemTooltip, terminalDataWriteEvent, terminalExecuteCommandEvent

2024-04-10 10:40:18.050 [warning] [redhat.vscode-yaml]: Cannot register 'redhat.telemetry.enabled'. This property is already registered.
2024-04-10 10:40:18.087 [error] [ms-python.debugpy]: issue/reporter is a proposed menu identifier. It requires 'package.json#enabledApiProposals: ["contribIssueReporter"]' and is only available when running out of dev or with the following command line switch: --enable-proposed-api ms-python.debugpy

2024-04-10 10:40:18.088 [error] [ms-python.python]: issue/reporter is a proposed menu identifier. It requires 'package.json#enabledApiProposals: ["contribIssueReporter"]' and is only available when running out of dev or with the following command line switch: --enable-proposed-api ms-python.python

sainnhe commented on 2024-04-03 11:45 (UTC) (edited on 2024-04-04 04:57 (UTC) by sainnhe)

@felixc: Sorry for late reply. After some investigation:

  1. The telemetry is not enabled by this package, it's enabled by code-oss. If you delete ~/.vscode* and ~/.config/Code* then uninstall code and code-features, and reinstall code, then launching a fresh code, you'll still see all telemetry is enabled. But it's possible to disable telemetry in product.json, so I'll disable the telemetry in the next version.
  2. In your steps, the reason you disabled all telemetry and it came back again is that code-features will use a different config directory which is ~/.config/Code instead of ~/.config/Code OSS that is used in code-oss, so your user settings will not work after installing this package.

This packages applies so many changes to code that it finally looks more like a MS branded code. For examle, configurations are located in ~/.config/Code and ~/.vscode instead of ~/.config/'Code - OSS' and ~/.vscode-oss.

This package basically does 3 things:

  1. Adding all proposed APIs that is used in the latest vscode release. You'll see some extensions doesn't work in code oss because these proposed APIs are not enabled in code oss. You can of course passing shell arguments to code, but this package will patching it to add all possible proposed APIs.
  2. Enable sync feature provided by microsoft.
  3. Use ~/.vscode and ~/.Code instead of ~/.vscode-oss and ~/.Code OSS. There are two reasons to do so: First, some extensions (e.g. pylance, as commented by @jamazi, and many others I've seen in GitHub) will require to use this folder to work. Second, people install this package because they may want to use some proprietary extensions, and they may have some specific settings that only works with these extensions or some sync related settings. If we use ~/.vscode and ~/.Code, we can isolate FOSS extensions and settings with proprietary extensions and settings, avoiding many potential problems such as messing up your synced settings. If you don't like this feature, you can simply create a symlink.

felixc commented on 2024-04-02 06:59 (UTC)

This packages applies so many changes to code that it finally looks more like a MS branded code. For examle, configurations are located in ~/.config/Code and ~/.vscode instead of ~/.config/'Code - OSS' and ~/.vscode-oss.

Finally decided to start afresh by uninstalling both code-features and code. Then install only code.

The problem I had originally and for what I installed code-features was that, after installed Python plugin and open a Python script, got an error popup telling:

extension activation failed Error: Extension 'ms-python.python' ...

Which I solved now simply by creating an alias for code and activating all APIs found in errors in the code console:

alias code='code --enable-proposed-api ms-python.python --enable-proposed-api ms-python.debugpy --enable-proposed-api ms-toolsai.jupyter --enable-proposed-api ms-toolsai.jupyter-renderers'

felixc commented on 2024-03-26 08:17 (UTC) (edited on 2024-03-26 12:04 (UTC) by felixc)

@sainnhe I checked by going to File > Preferences > Settings and searching for Telemetry. The value there is "all".

I did following test:

  1. Removed packages code and code-features
  2. Removed folders ".config/Code - OSS" and .vscode-oss
  3. Install package code and look for telemetry. It was "all"
  4. Changed telemetry to "off"
  5. Installed package code-features and looked for telemetry. It was "all" again.

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?