Skip to content

Latest commit

 

History

History
137 lines (105 loc) · 3.67 KB

settings-migration.md

File metadata and controls

137 lines (105 loc) · 3.67 KB

Settings Migration

In v2.24.0 we migrated all settings to conform to common VS Code setting naming conventions. This improves readability in the VS Code Settings UI as well as making the settings easier to discover when typing in the JSON Settings view.

Manual Migration

The terraform.languageServer setting block has been extracted out to individual settings.

In addition, terraform.languageServer.external has been renamed to terraform.languageServer.enable

OldNew
"terraform.languageServer": {
  "external": true,
  "pathToBinary": "",
  "args": [ "serve" ],
  "ignoreSingleFileWarning": false
},
"terraform.languageServer.enable": true,
"terraform.languageServer.pathToBinary": "",
"terraform.languageServer.args": [ "serve" ],
"terraform.languageServer.ignoreSingleFileWarning": false

The terraform-ls.terraformExec settings have been moved to the terraform section and have been renamed:

OldNew
"terraform-ls.terraformExecPath": "",
"terraform-ls.terraformExecTimeout": "",
"terraform-ls.terraformExecLogFilePath": ""
"terraform.languageServer.terraform.path": "",
"terraform.languageServer.terraform.timeout": "",
"terraform.languageServer.terraform.logFilePath": ""

All settings previously under the terraform-ls section have been moved to the terraform section and a new indexing subsection:

OldNew
"terraform-ls.rootModules": [],
"terraform-ls.excludeRootModules": [],
"terraform-ls.ignoreDirectoryNames": []
"terraform.languageServer.rootModules": [],
"terraform.languageServer.indexing.ignorePaths": [],
"terraform.languageServer.indexing.ignoreDirectoryNames": []

The terraform.experimentalFeatures setting block has been extracted out to individual settings:

OldNew
"terraform.experimentalFeatures": {
  "validateOnSave": false,
  "prefillRequiredFields": false,
},
"terraform.experimentalFeatures.validateOnSave": false,
"terraform.experimentalFeatures.prefillRequiredFields": false,

For an easy to view table of settings, see the Contributions tab when viewing the Terraform Extension in the VS Code Extension Pane.

Setting Scope

This extension has several settings that allow users to customize an executable path for different functions. These paths can vary depending on where the extension is running.

As of v2.24.0, the extension uses the machine scope for the following settings:

terraform.languageServer.path
terraform.languageServer.args
terraform.languageServer.tcp.port
terraform.languageServer.terraform.path
terraform.languageServer.terraform.logFilePath
terraform.languageServer.terraform.timeout
terraform.languageServer.rootModules
terraform.languageServer.excludeRootModules
terraform.languageServer.ignoreDirectoryNames

Note: This means these settings are no longer able to be configred in the Workspace or Folder setting scopes. For more information about setting scope see the VS Code setting documentation

This will allow VS Code to know where to read each setting depending on where the extension is running. For example: running locally on a Windows desktop, or in a WSL instance, or remotely in a GitHub Codespace or a Remote SSH session. VS Code understands where the extension is "running" and can read settings from the proper location, if the settings are properly scoped.