Package Details: code-features 1.96.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: 58
Popularity: 1.78
First Submitted: 2021-04-06 00:46 (UTC)
Last Updated: 2024-12-21 09:30 (UTC)

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 »

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?

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?