Estoy tratando de actualizar setting.json desde mi extensión de código vs y quiero agregar el código a continuación
"files.associations": { "*.app": "auraComponent" }En otras palabras, quiero agregar el siguiente par de valores clave de la extensión a los usuarios que van a instalar mi aplicación.
Así que intenté poner el siguiente código en extension.js pero no actualizó la configuración.
import { ConfigurationTarget, workspace } from 'vscode'; const configuration = workspace.getConfiguration('files.associations'); configuration.update('.app', 'auraComponent', ConfigurationTarget.Global).then(() => { // take action here });¿Podría alguien sugerir si estoy usando el enfoque correcto para actualizar la configuración del usuario o del espacio de trabajo y también si el código dentro de extension.js se ejecutaría automáticamente o no?
Actualizar
Agregué extension.js e incluí el código js como lo menciona mark en su respuesta
y actualice mi paquete.json como se muestra a continuación
"main": "./extension", "activationEvents": [ "*" ],Si ejecuto mi extensión en modo de depuración, funciona bien pero no funciona en tiempo real.
Lo siguiente funciona ya sea que haya una configuración de asociación de files.association preexistente o no. Si ya hay una, se le agrega la nueva asociación (y, por lo tanto, puede ubicarse en otro lugar que no sea el final del archivo de configuración; de lo contrario, se agregará una configuración de files.associations completamente nueva al final del archivo settings.json ) ..
const fileConfiguration = vscode.workspace.getConfiguration('files'); const associations = fileConfiguration.get('associations'); associations['*.app'] = "auraComponent"; fileConfiguration.update('associations', associations, vscode.ConfigurationTarget.Global).then(() => { // take action here });Adaptado de https://stackoverflow.com/a/49566662/836330 .
Como se explica allí, lo que realmente desea actualizar es el objeto de associations , ese es el valor que se actualizará. "*.app": "auraComponent no es una clave de configuración. files.associations es la clave y hay un objeto {...} que es su valor.