Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tfvars files are showing as invalid - red underlining everywhere #1579

Closed
1 task
scott-doyland-burrows opened this issue Oct 6, 2023 · 17 comments
Closed
1 task

Comments

@scott-doyland-burrows
Copy link

scott-doyland-burrows commented Oct 6, 2023

Extension Version

v2.28.1

VS Code Version

Version: 1.82.2 (user setup)
Commit: abd2f3db4bdb28f9e95536dfa84d8479f1eb312d
Date: 2023-09-14T05:55:25.390Z
Electron: 25.8.1
ElectronBuildId: 23779380
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Windows_NT x64 10.0.19044

Operating System

Windows 10 with WSL

Terraform Version

Terraform v1.6.0 on linux_amd64 + provider registry.terraform.io/integrations/github v5.39.0

Steps to Reproduce

Define a .tfvars file and put in a valid config.

Expected Behavior

.tfvars file should shows as valid.

Actual Behavior

image

image

Terraform Configuration

terraform .tfvars file

a = "test"

Project Structure

N/A

Gist

No response

Anything Else?

No response

Workarounds

No response

References

No response

Help Wanted

  • I'm interested in contributing a fix myself

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment
@scott-doyland-burrows scott-doyland-burrows added the bug Something isn't working label Oct 6, 2023
@jpogran
Copy link
Contributor

jpogran commented Oct 6, 2023

Hey @scott-doyland-burrows thanks for posting. I see you're using the WSL environment, can you double check the extension updated to v2.28.1 inside? In my own experience using WSL, I've noticed it can fall behind detecting updates inside WSL (or Dev Containers, etc) where the main editor shows the latest version.

If that is updated, can you add a little more detail where the terraform.tfvars file is? I've added one to an existing repo, created a new folder and added it as a single file and opened that folder, and also opened it as a single file inside VS Code, and haven't gotten any diagnostics:

image

@ghs
Copy link

ghs commented Oct 6, 2023

For me is the same, but only for .hcl files. It started after the latest update. Until now, it always has been working without any issues.

Version: 1.83.0
Commit: e7e037083ff4455cf320e344325dacb480062c3c
Date: 2023-10-03T16:13:15.449Z
Electron: 25.8.4
ElectronBuildId: 24154031
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Darwin x64 22.5.0

@ghs
Copy link

ghs commented Oct 6, 2023

Just downgraded to 2.27.2 and everything went back to normal. 28.0 and 28.1 have the problem.

@scott-doyland-burrows
Copy link
Author

scott-doyland-burrows commented Oct 7, 2023

I uninstalled the extension completely.

Restarted vscode and did NOT connect to WSL.

Installed the extension at 2.28.1.

I created a new folder in my Windows "Downloads" folder and created two files:
test.tfvars and variables.tf

image

Opening just the single file also shows the issue:

image

Switching back to 2.27.2 fixes it.

@radeksimko
Copy link
Member

radeksimko commented Oct 9, 2023

Side note: We generally treat autoloaded variable files differently to the other ones, i.e. terraform.tfvars/*.auto.tfvars is not treated the same as test.tfvars. Currently there should be no diagnostics (relevant or not) for the non-autoloaded tfvars files, such as in your example.

I am not on Windows myself (macOS) but I was not able to reproduce the issue and I would not expect such a bug to be platform-specific.

2023-10-09 09 38 45
Screenshot 2023-10-09 at 09 42 17

  1. Can you double check the LS version in the bottom bar by clicking on the {} button? If it's not 0.32.1, can you try removing terraform.languageServer.path from settings to ensure the language server is loaded from within the extension?
  2. Would you mind sharing the whole log with us? It can be found in the Output pane: https://github.com/hashicorp/terraform-ls/blob/main/docs/TROUBLESHOOTING.md#stderr-default

On a separate note, you can stay on the latest version and disable the validation using the following option:

"terraform.validation.enableEnhancedValidation": false,

There should be no need to downgrade to older versions.

@scott-doyland-burrows
Copy link
Author

I have found that if I name my .tfvars like this:

test.auto.tfvars (it has auto in the name) AND have the file in the same directory as my variables.tf file then it shows as a valid file.

Note how the top screenshot shows a valid file (the bottom shows a test.auto.tfvars in two locations, one working in the same directory as the variables.tf and one not working in a nested directory.

image

image

image

image

image

@scott-doyland-burrows
Copy link
Author

scott-doyland-burrows commented Oct 9, 2023

I am on 0.32.1

image

Here is the log - I opened a new vscode window and opened the "invalid" file named tfvars/test.auto.tfvars, so hopefully the log should contain just the details you need and not anything else:

Launching language server: c:\Users\ScottDoyland\.vscode\extensions\hashicorp.terraform-2.28.1-win32-x64\bin\terraform-ls.exe serve
Client: Stopped --> Starting
2023/10/09 10:02:28 serve_command.go:108: Starting terraform-ls 0.32.1
2023/10/09 10:02:28 service.go:106: Preparing new session ...
2023/10/09 10:02:28 langserver.go:102: Starting server (pid 12108; concurrency: 4) ...
2023/10/09 10:02:28 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:28 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:28 rpc_logger.go:32: Incoming request for "initialize" (ID 0): {"processId":31264,"clientInfo":{"name":"Visual Studio Code","version":"1.82.2"},"locale":"en","rootPath":"c:\\Users\\ScottDoyland\\Downloads","rootUri":"file:///c%3A/Users/ScottDoyland/Downloads","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional","normalizesLineEndings":true,"changeAnnotationSupport":{"groupsOnLabel":true}},"configuration":true,"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]},"resolveSupport":{"properties":["location.range"]}},"codeLens":{"refreshSupport":true},"executeCommand":{"dynamicRegistration":true},"didChangeConfiguration":{"dynamicRegistration":true},"workspaceFolders":true,"semanticTokens":{"refreshSupport":true},"fileOperations":{"dynamicRegistration":true,"didCreate":true,"didRename":true,"didDelete":true,"willCreate":true,"willRename":true,"willDelete":true},"inlineValue":{"refreshSupport":true},"inlayHint":{"refreshSupport":true},"diagnostics":{"refreshSupport":true}},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]},"codeDescriptionSupport":true,"dataSupport":true},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]},"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"insertTextModeSupport":{"valueSet":[1,2]},"labelDetailsSupport":true},"insertTextMode":2,"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"completionList":{"itemDefaults":["commitCharacters","editRange","insertTextFormat","insertTextMode"]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true,"tagSupport":{"valueSet":[1]},"labelSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"disabledSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]},"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"honorsChangeAnnotations":false},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true,"prepareSupportDefaultBehavior":1,"honorsChangeAnnotations":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true,"foldingRangeKind":{"valueSet":["comment","imports","region"]},"foldingRange":{"collapsedText":false}},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator","hcl-attrName","hcl-blockType","hcl-blockLabel","hcl-bool","hcl-string","hcl-number","hcl-objectKey","hcl-mapKey","hcl-keyword","hcl-traversalStep","hcl-typeCapsule","hcl-typePrimitive","hcl-functionName"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary","hcl-dependent","terraform-data","terraform-locals","terraform-module","terraform-output","terraform-provider","terraform-resource","terraform-provisioner","terraform-connection","terraform-variable","terraform-terraform","terraform-backend","terraform-name","terraform-type","terraform-requiredProviders"],"formats":["relative"],"requests":{"range":true,"full":{"delta":true}},"multilineTokenSupport":false,"overlappingTokenSupport":false,"serverCancelSupport":true,"augmentsSyntaxTokens":true},"linkedEditingRange":{"dynamicRegistration":true},"typeHierarchy":{"dynamicRegistration":true},"inlineValue":{"dynamicRegistration":true},"inlayHint":{"dynamicRegistration":true,"resolveSupport":{"properties":["tooltip","textEdits","label.tooltip","label.location","label.command"]}},"diagnostic":{"dynamicRegistration":true,"relatedDocumentSupport":false}},"window":{"showMessage":{"messageActionItem":{"additionalPropertiesSupport":true}},"showDocument":{"support":true},"workDoneProgress":true},"general":{"staleRequestSupport":{"cancel":true,"retryOnContentModified":["textDocument/semanticTokens/full","textDocument/semanticTokens/range","textDocument/semanticTokens/full/delta"]},"regularExpressions":{"engine":"ECMAScript","version":"ES2020"},"markdown":{"parser":"marked","version":"1.1.0"},"positionEncodings":["utf-16"]},"notebookDocument":{"synchronization":{"dynamicRegistration":true,"executionSummarySupport":true}},"experimental":{"refreshModuleProvidersCommandId":"client.refreshModuleProviders","refreshModuleCallsCommandId":"client.refreshModuleCalls","telemetryVersion":1,"refreshTerraformVersionCommandId":"client.refreshTerraformVersion"}},"initializationOptions":{"validation":{"enableEnhancedValidation":true},"experimentalFeatures":{"validateOnSave":false,"prefillRequiredFields":false},"ignoreSingleFileWarning":false,"terraform":{"path":"","timeout":"","logFilePath":""},"indexing":{"ignorePaths":[],"ignoreDirectoryNames":[]}},"trace":"off","workspaceFolders":[{"uri":"file:///c%3A/Users/ScottDoyland/Downloads","name":"Downloads"}],"workDoneToken":"000d2b56-be46-4bc5-9435-076e82306418"}
2023/10/09 10:02:28 initialize.go:185: enabling telemetry (version: 1)
2023/10/09 10:02:28 initialize.go:190: telemetry enabled (version: 1)
2023/10/09 10:02:28 scheduler.go:56: launching eval loop 0
2023/10/09 10:02:28 service.go:482: started low priority scheduler
2023/10/09 10:02:28 scheduler.go:56: launching eval loop 0
2023/10/09 10:02:28 service.go:487: started high priority scheduler
2023/10/09 10:02:28 opts.go:215: Posting server notification "telemetry/event" {"v":1,"name":"initialize","properties":{"experimentalCapabilities.referenceCountCodeLens":false,"experimentalCapabilities.refreshModuleCalls":true,"experimentalCapabilities.refreshModuleProviders":true,"experimentalCapabilities.refreshTerraformVersion":true,"lsVersion":"0.32.1","options.commandPrefix":false,"options.excludeModulePaths":false,"options.experimentalFeatures.prefillRequiredFields":false,"options.experimentalFeatures.validateOnSave":false,"options.ignoreSingleFileWarning":false,"options.indexing.ignoreDirectoryNames":false,"options.indexing.ignorePaths":false,"options.rootModulePaths":false,"options.terraform.logFilePath":false,"options.terraform.path":false,"options.terraform.timeout":"","options.validation.earlyValidation":true,"root_uri":"dir"}}
2023/10/09 10:02:28 rpc_logger.go:53: Response to "initialize" (ID 0): {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":[".","["],"resolveProvider":true},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"declarationProvider":true,"definitionProvider":true,"referencesProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["source.formatAll.terraform"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"executeCommandProvider":{"commands":["terraform-ls.module.callers","terraform-ls.module.calls","terraform-ls.module.providers","terraform-ls.module.terraform","terraform-ls.rootmodules","terraform-ls.terraform.init","terraform-ls.terraform.validate"],"workDoneProgress":true},"semanticTokensProvider":{"legend":{"tokenTypes":["enumMember","function","keyword","number","parameter","property","string","type","variable","hcl-attrName","hcl-blockType","hcl-blockLabel","hcl-bool","hcl-string","hcl-number","hcl-objectKey","hcl-mapKey","hcl-keyword","hcl-traversalStep","hcl-typeCapsule","hcl-typePrimitive","hcl-functionName"],"tokenModifiers":["defaultLibrary","hcl-dependent","terraform-backend","terraform-connection","terraform-data","terraform-locals","terraform-module","terraform-name","terraform-output","terraform-provider","terraform-provisioner","terraform-requiredProviders","terraform-resource","terraform-terraform","terraform-type","terraform-variable"]},"full":true},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"},"fileOperations":{}},"experimental":{"referenceCountCodeLens":false,"refreshModuleProviders":true,"refreshModuleCalls":true,"refreshTerraformVersion":true}},"serverInfo":{"name":"terraform-ls","version":"0.32.1"}}
2023/10/09 10:02:28 opts.go:215: Completed 1 requests [43.5813ms elapsed]
2023/10/09 10:02:28 walker_paths.go:255: walking next dir: {"file:///C:/Users/ScottDoyland/Downloads"}
Client: Starting --> Running
2023/10/09 10:02:28 walker.go:242: walking of {file:///C:/Users/ScottDoyland/Downloads/tfvars} finished
2023/10/09 10:02:28 walker.go:218: found module {file:///C:/Users/ScottDoyland/Downloads}
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "1": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "2": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "3": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "4": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
Started client
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "1" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:28 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:28 rpc_logger.go:32: Incoming notification for "initialized": {}
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 opts.go:215: Posting server call "client/registerCapability" {"registrations":[{"id":"60462f72-63c5-b843-91b5-39966472a5a8","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/.terraform","kind":3},{"globPattern":"**/.terraform/modules/modules.json"},{"globPattern":"**/.terraform.lock.hcl"},{"globPattern":"**/.terraform/plugins/selections.json"},{"globPattern":"**/.terraform/plugins/windows_amd64/lock.json"}]}}]}
2023/10/09 10:02:28 walker.go:91: parsed datadir: &datadir.DataDir{ModuleManifestPath:"", PluginLockFilePath:""}
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "5": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "6": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 jobs.go:140: JOBS: Enqueueing new job "7": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads"} (IsDirOpen: false, IgnoreState: false)
2023/10/09 10:02:28 walker.go:242: walking of {file:///C:/Users/ScottDoyland/Downloads} finished
2023/10/09 10:02:28 walker.go:156: walker: walking through {"file:///C:/Users/ScottDoyland/Downloads"} finished
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "1": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "2" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "2": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 opts.go:215: Received response for callback "1"
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "3" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "3": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "4" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "4": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "5" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "5": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "6" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "6": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:321: JOBS: Dispatching next job "7" (scheduler prio: -1, job prio: 0, isDirOpen: false): "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads"}
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:28 jobs.go:461: JOBS: Finishing job "7": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:28 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:32 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:32 rpc_logger.go:32: Incoming notification for "textDocument/didOpen": {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","languageId":"terraform","version":1,"text":"a = \"a\"\n"}}
2023/10/09 10:02:32 did_open.go:56: opened module: C:\Users\ScottDoyland\Downloads\tfvars
2023/10/09 10:02:32 opts.go:215: Posting server call "client.refreshModuleProviders" 
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "8": "OpTypeGetTerraformVersion" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: false)
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "9": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "10": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "11": "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: false)
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "12": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "13": "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "14": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: false)
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "8" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeGetTerraformVersion" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "8": "OpTypeGetTerraformVersion" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "12" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 opts.go:215: Received response for callback "2"
2023/10/09 10:02:32 opts.go:215: Posting server call "client.refreshModuleCalls" 
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "12": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "14" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "14": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "9" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "9": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 opts.go:215: Received response for callback "3"
2023/10/09 10:02:32 opts.go:215: Posting server call "client.refreshTerraformVersion" 
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "10" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 module_calls.go:64: indexing declared module calls for "file:///C:/Users/ScottDoyland/Downloads/tfvars": 0
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "15": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "16": "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "17": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "18": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:140: JOBS: Enqueueing new job "19": "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "10": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: ["15" "17" "18"])
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "13" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "11" (scheduler prio: -1, job prio: -1, isDirOpen: true): "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "11": "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "13": "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "15" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "15": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "16" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "16": "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "17" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "17": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "18" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "18": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 jobs.go:321: JOBS: Dispatching next job "19" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 opts.go:215: Received response for callback "4"
2023/10/09 10:02:32 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:32 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:32 rpc_logger.go:32: Incoming request for "textDocument/documentSymbol" (ID 1): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:32 jobs.go:461: JOBS: Finishing job "19": "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:32 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:32 opts.go:215: Posting server call "client.refreshModuleProviders" 
2023/10/09 10:02:32 rpc_logger.go:48: Error for "textDocument/documentSymbol" (ID 1): [-32098] test.auto.tfvars: file not found
2023/10/09 10:02:32 opts.go:215: Completed 1 requests [1.0381ms elapsed]
2023/10/09 10:02:32 opts.go:215: Received response for callback "5"
2023/10/09 10:02:32 opts.go:215: Posting server call "client.refreshModuleCalls" 
[Error - 10:02:32 AM] Request textDocument/documentSymbol failed.
  Message: test.auto.tfvars: file not found
  Code: -32098 
2023/10/09 10:02:32 opts.go:215: Received response for callback "6"
2023/10/09 10:02:32 opts.go:215: Posting server call "client.refreshTerraformVersion" 
2023/10/09 10:02:32 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:32 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:32 rpc_logger.go:32: Incoming request for "textDocument/semanticTokens/full" (ID 2): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:32 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:32 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:32 rpc_logger.go:32: Incoming request for "workspace/executeCommand" (ID 3): {"command":"terraform-ls.module.terraform","arguments":["uri=file:///c%3A/Users/ScottDoyland/Downloads/tfvars"]}
2023/10/09 10:02:32 rpc_logger.go:48: Error for "textDocument/semanticTokens/full" (ID 2): [-32098] test.auto.tfvars: file not found
2023/10/09 10:02:32 opts.go:215: Completed 1 requests [1.0531ms elapsed]
2023/10/09 10:02:32 rpc_logger.go:53: Response to "workspace/executeCommand" (ID 3): {"v":0}
2023/10/09 10:02:32 opts.go:215: Completed 1 requests [0s elapsed]
[Error - 10:02:32 AM] Request textDocument/semanticTokens/full failed.
  Message: test.auto.tfvars: file not found
  Code: -32098 
2023/10/09 10:02:32 opts.go:215: Received response for callback "7"
2023/10/09 10:02:32 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:32 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:32 rpc_logger.go:32: Incoming request for "textDocument/documentLink" (ID 4): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:32 rpc_logger.go:48: Error for "textDocument/documentLink" (ID 4): [-32098] test.auto.tfvars: file not found
2023/10/09 10:02:32 opts.go:215: Completed 1 requests [2.8513ms elapsed]
[Error - 10:02:32 AM] Request textDocument/documentLink failed.
  Message: test.auto.tfvars: file not found
  Code: -32098 
2023/10/09 10:02:32 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:32 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:32 rpc_logger.go:32: Incoming request for "textDocument/codeLens" (ID 5): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:32 rpc_logger.go:53: Response to "textDocument/codeLens" (ID 5): []
2023/10/09 10:02:32 opts.go:215: Completed 1 requests [965.8µs elapsed]
2023/10/09 10:02:33 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:33 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:33 rpc_logger.go:32: Incoming request for "textDocument/codeLens" (ID 6): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:33 rpc_logger.go:53: Response to "textDocument/codeLens" (ID 6): []
2023/10/09 10:02:33 opts.go:215: Completed 1 requests [1.8121ms elapsed]
2023/10/09 10:02:34 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:34 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:34 rpc_logger.go:32: Incoming notification for "textDocument/didChange": {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","version":2},"contentChanges":[{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":0}},"rangeLength":0,"text":"\n"}]}
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "20": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "21": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "22": "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: false)
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "23": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "24": "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "25": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "20" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "20": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "21" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 module_calls.go:64: indexing declared module calls for "file:///C:/Users/ScottDoyland/Downloads/tfvars": 0
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "26": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "27": "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "28": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "29": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:140: JOBS: Enqueueing new job "30": "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "21": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: ["26" "28" "29"])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "23" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "22" (scheduler prio: -1, job prio: -1, isDirOpen: true): "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "22": "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "23": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "24" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "24": "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "25" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "25": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "26" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "26": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "27" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "27": "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "28" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "28": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "29" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "29": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 jobs.go:321: JOBS: Dispatching next job "30" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:34 jobs.go:461: JOBS: Finishing job "30": "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:34 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:34 opts.go:215: Posting server call "client.refreshModuleProviders" 
2023/10/09 10:02:34 opts.go:215: Posting server notification "textDocument/publishDiagnostics" {"uri":"file:///C:/Users/ScottDoyland/Downloads/tfvars","diagnostics":[]}
2023/10/09 10:02:34 opts.go:215: Posting server notification "textDocument/publishDiagnostics" {"uri":"file:///C:/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","diagnostics":[{"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":7}},"severity":1,"source":"Terraform","message":"Unexpected attribute: An attribute named \"a\" is not expected here"}]}
2023/10/09 10:02:34 opts.go:215: Received response for callback "8"
2023/10/09 10:02:34 opts.go:215: Posting server call "client.refreshModuleCalls" 
2023/10/09 10:02:34 opts.go:215: Received response for callback "9"
2023/10/09 10:02:34 opts.go:215: Posting server call "client.refreshTerraformVersion" 
2023/10/09 10:02:34 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:34 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:34 rpc_logger.go:32: Incoming request for "workspace/executeCommand" (ID 7): {"command":"terraform-ls.module.terraform","arguments":["uri=file:///c%3A/Users/ScottDoyland/Downloads/tfvars"]}
2023/10/09 10:02:34 rpc_logger.go:53: Response to "workspace/executeCommand" (ID 7): {"v":0}
2023/10/09 10:02:34 opts.go:215: Completed 1 requests [0s elapsed]
2023/10/09 10:02:34 opts.go:215: Received response for callback "10"
2023/10/09 10:02:34 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:34 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:34 rpc_logger.go:32: Incoming request for "textDocument/codeLens" (ID 8): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:34 rpc_logger.go:53: Response to "textDocument/codeLens" (ID 8): []
2023/10/09 10:02:34 opts.go:215: Completed 1 requests [2.0993ms elapsed]
2023/10/09 10:02:34 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:34 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:34 rpc_logger.go:32: Incoming request for "textDocument/semanticTokens/full" (ID 9): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:34 rpc_logger.go:53: Response to "textDocument/semanticTokens/full" (ID 9): {"data":[]}
2023/10/09 10:02:34 opts.go:215: Completed 1 requests [2.0823ms elapsed]
2023/10/09 10:02:35 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:35 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:35 rpc_logger.go:32: Incoming request for "textDocument/documentSymbol" (ID 10): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:35 rpc_logger.go:53: Response to "textDocument/documentSymbol" (ID 10): [{"name":"a","kind":15,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":7}},"selectionRange":{"start":{"line":0,"character":0},"end":{"line":0,"character":7}}}]
2023/10/09 10:02:35 opts.go:215: Completed 1 requests [2.4222ms elapsed]
2023/10/09 10:02:35 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:35 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:35 rpc_logger.go:32: Incoming request for "textDocument/documentLink" (ID 11): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:35 rpc_logger.go:53: Response to "textDocument/documentLink" (ID 11): []
2023/10/09 10:02:35 opts.go:215: Completed 1 requests [1.6013ms elapsed]
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming request for "textDocument/formatting" (ID 12): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"},"options":{"tabSize":2,"insertSpaces":true,"trimTrailingWhitespace":true,"trimFinalNewlines":true,"insertFinalNewline":true}}
2023/10/09 10:02:36 rpc_logger.go:48: Error for "textDocument/formatting" (ID 12): [-32098] Terraform (CLI) is required. Please install Terraform or make it available in $PATH
2023/10/09 10:02:36 opts.go:215: Completed 1 requests [0s elapsed]
[Error - 10:02:36 AM] Request textDocument/formatting failed.
  Message: Terraform (CLI) is required. Please install Terraform or make it available in $PATH
  Code: -32098 
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming notification for "textDocument/didChange": {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","version":3},"contentChanges":[{"range":{"start":{"line":1,"character":0},"end":{"line":2,"character":0}},"rangeLength":1,"text":""}]}
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "31": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "32": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "33": "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: false)
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "34": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "35": "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "36": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "31" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "31": "OpTypeParseModuleConfiguration" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "32" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 module_calls.go:64: indexing declared module calls for "file:///C:/Users/ScottDoyland/Downloads/tfvars": 0
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "37": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "38": "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "39": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "40": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:140: JOBS: Enqueueing new job "41": "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (IsDirOpen: true, IgnoreState: true)
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "32": "OpTypeLoadModuleMetadata" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: ["37" "39" "40"])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "34" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "33" (scheduler prio: -1, job prio: -1, isDirOpen: true): "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "33": "OpTypeGetModuleDataFromRegistry" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "34": "OpTypeParseVariables" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "35" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "35": "OpTypeSchemaVarsValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "36" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "36": "OpTypeDecodeVarsReferences" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "37" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "37": "OpTypePreloadEmbeddedSchema" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "38" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "38": "OpTypeSchemaModuleValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "39" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "39": "OpTypeDecodeReferenceTargets" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "40" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "40": "OpTypeDecodeReferenceOrigins" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:321: JOBS: Dispatching next job "41" (scheduler prio: 1, job prio: 0, isDirOpen: true): "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"}
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 jobs.go:461: JOBS: Finishing job "41": "OpTypeReferenceValidation" for {"file:///C:/Users/ScottDoyland/Downloads/tfvars"} (err = %!s(<nil>), deferredJobs: [])
2023/10/09 10:02:36 jobs.go:299: retrying on obj is nil
2023/10/09 10:02:36 opts.go:215: Posting server call "client.refreshModuleProviders" 
2023/10/09 10:02:36 opts.go:215: Posting server notification "textDocument/publishDiagnostics" {"uri":"file:///C:/Users/ScottDoyland/Downloads/tfvars","diagnostics":[]}
2023/10/09 10:02:36 opts.go:215: Posting server notification "textDocument/publishDiagnostics" {"uri":"file:///C:/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","diagnostics":[{"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":7}},"severity":1,"source":"Terraform","message":"Unexpected attribute: An attribute named \"a\" is not expected here"}]}
2023/10/09 10:02:36 opts.go:215: Received response for callback "11"
2023/10/09 10:02:36 opts.go:215: Posting server call "client.refreshModuleCalls" 
2023/10/09 10:02:36 opts.go:215: Received response for callback "12"
2023/10/09 10:02:36 opts.go:215: Posting server call "client.refreshTerraformVersion" 
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming request for "workspace/executeCommand" (ID 13): {"command":"terraform-ls.module.terraform","arguments":["uri=file:///c%3A/Users/ScottDoyland/Downloads/tfvars"]}
2023/10/09 10:02:36 rpc_logger.go:53: Response to "workspace/executeCommand" (ID 13): {"v":0}
2023/10/09 10:02:36 opts.go:215: Completed 1 requests [0s elapsed]
2023/10/09 10:02:36 opts.go:215: Received response for callback "13"
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming notification for "textDocument/didSave": {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming notification for "workspace/didChangeWatchedFiles": {"changes":[{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","type":2}]}
2023/10/09 10:02:36 did_change_watched_files.go:159: document is open - ignoring event for "file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming request for "textDocument/codeLens" (ID 14): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:36 rpc_logger.go:53: Response to "textDocument/codeLens" (ID 14): []
2023/10/09 10:02:36 opts.go:215: Completed 1 requests [532.8µs elapsed]
2023/10/09 10:02:36 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:36 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:36 rpc_logger.go:32: Incoming request for "textDocument/semanticTokens/full" (ID 15): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:36 rpc_logger.go:53: Response to "textDocument/semanticTokens/full" (ID 15): {"data":[]}
2023/10/09 10:02:36 opts.go:215: Completed 1 requests [1.872ms elapsed]
2023/10/09 10:02:37 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:37 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:37 rpc_logger.go:32: Incoming request for "textDocument/documentSymbol" (ID 16): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:37 rpc_logger.go:53: Response to "textDocument/documentSymbol" (ID 16): [{"name":"a","kind":15,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":7}},"selectionRange":{"start":{"line":0,"character":0},"end":{"line":0,"character":7}}}]
2023/10/09 10:02:37 opts.go:215: Completed 1 requests [2.3465ms elapsed]
2023/10/09 10:02:38 opts.go:215: Received request batch of size 1 (qlen=0)
2023/10/09 10:02:38 opts.go:215: Dequeued request batch of length 1 (qlen=0)
2023/10/09 10:02:38 rpc_logger.go:32: Incoming request for "textDocument/documentLink" (ID 17): {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars"}}
2023/10/09 10:02:38 rpc_logger.go:53: Response to "textDocument/documentLink" (ID 17): []
2023/10/09 10:02:38 opts.go:215: Completed 1 requests [1.2782ms elapsed]

@dbanck
Copy link
Member

dbanck commented Oct 9, 2023

Hi @scott-doyland-burrows,

Thank you for providing the logs and additional screenshots.

Can you check the language ID of the *.tfvars files in the bottom status bar of vscode?
CleanShot 2023-10-09 at 13 30 51@2x

The logs and your screenshot suggest it's terraform, but it should be terraform-vars instead:

2023/10/09 10:02:32 rpc_logger.go:32: Incoming notification for "textDocument/didOpen": {"textDocument":{"uri":"file:///c%3A/Users/ScottDoyland/Downloads/tfvars/test.auto.tfvars","languageId":"terraform","version":1,"text":"a = \"a\"\n"}}

Can you try to change it back to terraform-vars?
CleanShot 2023-10-09 at 13 32 04@2x

@scott-doyland-burrows
Copy link
Author

I have set the language ID to terraform-tfvars.

However, now if I create an actual invalid .tfvars file (without auto in the name) it does not show it is invalid.

Note how test.auto.tfvars shows as invalid (which it is).
But test.tfvars shows as valid (which it is not).

image

image

@scott-doyland-burrows

This comment was marked as off-topic.

@radeksimko
Copy link
Member

radeksimko commented Oct 9, 2023

For the time being we do not provide validation for non-autoloaded tfvars files, i.e. any *.tfvars files other than the ones called either terraform.tfvars or *.auto.tfvars (and their .json suffixed variations) will not be validated. We do not currently have any simple way of connecting these files to modules, to be able to inform how to validate them (i.e. which variable names to expect), so this is currently by design - i.e. not a bug. I will file some issues to track further possible enhancements in this area but the problem statement ultimately remains the same.

TL;DR we cannot tell if foo.tfvars gets passed either via env variables or via -var-file flag and to which exact module. This is context which is not held in code and so we cannot make assumptions.

I have created a separate issue to discuss the other module related issue - I think that may still be a genuine bug, so let's continue conversation about that in #1582

@dbanck
Copy link
Member

dbanck commented Oct 13, 2023

A new version 2.28.2 was just released. This fixes the module related issue (#1582). The update should appear automatically in VS Code.

With the correct file type, the behavior for *.tfvars files is now as expected for the reasons Radek mentioned. So I'm closing this issue for now. Thanks for your detailed reports, which made debugging much easier.


In case you experience any different validation related bug, please do let us know through a new issue.

@dbanck dbanck closed this as completed Oct 13, 2023
@ghs
Copy link

ghs commented Oct 13, 2023

@dbanck @radeksimko Just updated to .2 and for my case as mentioned in #1579 (comment) the problem still persists.

I didn't have any of the problems reported from other people within .tfvars nor any .tf files using .28.0 nor .28.1, but only .hcl when used with Terragrunt.

Screenshot 2023-10-13 at 13 38 41

Screenshot 2023-10-13 at 13 38 47

Edit: Should I open a separate issue or keep the conversation here?

@dbanck
Copy link
Member

dbanck commented Oct 13, 2023

@ghs, yes please open a separate issue. But I'm not sure if we can help here.

We don't support Terragrunt files in the extension or the language server. AFAIK, Terragrunt uses .hcl as file extension by default, so it shouldn't cause any conflicts with our extension, which works with .tf and .tfvars files.

If you change the file type for .hcl files containing Terragrunt code to Terraform, you can use this option, which turns off all validations, except for HCL syntax errors:

"terraform.validation.enableEnhancedValidation": false,

@ghs
Copy link

ghs commented Oct 13, 2023

Thanks! Won't be needed. All good now! :)

Not sure what had happened, but for some reason with the old version 2.27.2 everything worked fine including .hcl files. Validation, highlighting, autocomplete... With 2.28.1 .hcl files as I wrote started to appear as incorrect. I've just uninstalled and installed again HashiCorp Terraform and HashiCorp HCL extensions, restarted and things went back to normal. I suppose something messed up somehow on my side. Thanks again for your time!

@radeksimko
Copy link
Member

I will file some issues to track further possible enhancements in this area but the problem statement ultimately remains the same.

I just found this existing issue which I think covers pretty much all that can be said about the problem space right now, so you are free to subscribe to that one: hashicorp/terraform-ls#715

Copy link

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants