Open elvishp2006 opened 2 months ago
Can you provide an minimal example YAML file so I can see if I can reproduce?
Can you provide an minimal example YAML file so I can see if I can reproduce?
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: >
api-example: API Example
Parameters:
Stage:
Type: String
Default: development
AllowedValues:
- development
- staging
- production
Conditions:
IsProductionStage: !Equals [!Ref Stage, production]
Resources:
HttpApi:
Type: AWS::Serverless::HttpApi
Properties:
DefaultRouteSettings:
DetailedMetricsEnabled: true
Domain:
CertificateArn: arn:aws:acm:us-east-1:000000000000:certificate/be8e5595-4771-4408-9ec2-547a2230bdfds
DomainName: !Ref DomainName
EndpointConfiguration: REGIONAL
Route53:
HostedZoneId: Z1OLBJHSKHIU98
I can reproduce. You config works correctly in 2d06d5c906 following this PR:
But is broken in current Stable/Preview.
After running the bisect the offending commit that introduced the regression is 02d5f320ad621e92cafaa7075f61e6496e12cd98 which is the following PR:
Thanks for reporting.
Change initialization_options
to settings
and it should work.
I'll work on updating the docs to reflect this.
I had changed the configs to this:
"lsp": {
"yaml-language-server": {
"settings": {
"yaml": {
"customTags": [
"!And scalar",
"!And mapping",
"!And sequence",
"!If scalar",
"!If mapping",
"!If sequence",
"!Not scalar",
"!Not mapping",
"!Not sequence",
"!Equals scalar",
"!Equals mapping",
"!Equals sequence",
"!Or scalar",
"!Or mapping",
"!Or sequence",
"!FindInMap scalar",
"!FindInMap mappping",
"!FindInMap sequence",
"!Base64 scalar",
"!Base64 mapping",
"!Base64 sequence",
"!Cidr scalar",
"!Cidr mapping",
"!Cidr sequence",
"!Ref scalar",
"!Ref mapping",
"!Ref sequence",
"!Sub scalar",
"!Sub mapping",
"!Sub sequence",
"!GetAtt scalar",
"!GetAtt mapping",
"!GetAtt sequence",
"!GetAZs scalar",
"!GetAZs mapping",
"!GetAZs sequence",
"!ImportValue scalar",
"!ImportValue mapping",
"!ImportValue sequence",
"!Select scalar",
"!Select mapping",
"!Select sequence",
"!Split scalar",
"!Split mapping",
"!Split sequence",
"!Join scalar",
"!Join mapping",
"!Join sequence",
"!Condition scalar",
"!Condition mapping",
"!Condition sequence"
],
"schemas": {
"https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json": "template.yml"
}
}
}
}
}
But it's not working yet
Zed: v0.154.0 (Zed Preview)
OS: macOS 15.0.0
Memory: 16 GiB
Architecture: aarch64
Here is an example project that works for me Zed Preview v0.154.0 https://github.com/notpeter2/zed-yaml-example
Unrelated, there's a typo in your settings: s/"!FindInMap mappping",/"!FindInMap mapping",/
(three p's).
Here is an example project that works for me Zed Preview v0.154.0 https://github.com/notpeter2/zed-yaml-example
Unrelated, there's a typo in your settings:
s/"!FindInMap mappping",/"!FindInMap mapping",/
(three p's).
I think this repo is private
Whoops. Fixed.
I don't know what is happening here:
Can you look in your Zed log ~/Library/Logs/Zed/Zed.log
and see if there's anything of note?
It's a little baroque, but from the Command Palette (cmd-shift-p) there's also debug: open language server logs
and then you can select "yaml-language-server" and [x] "RPC Messages"
Then if you open the .zed/settings.json and make a change (e.g. add a space and save) you can see the log of communication between Zed and the LSP. Similarly, any actions you perform in the file (edit, hover diagnostics, etc) should show up there too.
I don't have any great ideas about what to look for, but maybe something will pop out at you.
Also worth commenting out any lines in your Zed user settings (`~/.config/zed/settings.json) related to this in case there's some conflict between the user settings and the workspace settings in the repo.
I did commented the section lsp from user settings, and here are the logs:
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///private/tmp/zed-yaml-example/.zed/settings.json"}}}
// Send:
{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"[yaml]":{"editor.tabSize":2},"yaml":{"customTags":["!And scalar","!And mapping","!And sequence","!If scalar","!If mapping","!If sequence","!Not scalar","!Not mapping","!Not sequence","!Equals scalar","!Equals mapping","!Equals sequence","!Or scalar","!Or mapping","!Or sequence","!FindInMap scalar","!FindInMap mapping","!FindInMap sequence","!Base64 scalar","!Base64 mapping","!Base64 sequence","!Cidr scalar","!Cidr mapping","!Cidr sequence","!Ref scalar","!Ref mapping","!Ref sequence","!Sub scalar","!Sub mapping","!Sub sequence","!GetAtt scalar","!GetAtt mapping","!GetAtt sequence","!GetAZs scalar","!GetAZs mapping","!GetAZs sequence","!ImportValue scalar","!ImportValue mapping","!ImportValue sequence","!Select scalar","!Select mapping","!Select sequence","!Split scalar","!Split mapping","!Split sequence","!Join scalar","!Join mapping","!Join sequence","!Condition scalar","!Condition mapping","!Condition sequence"],"schemas":{"https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json":"template.yml"}}}}}
// Receive:
{"jsonrpc":"2.0","id":3,"method":"workspace/configuration","params":{"items":[{"section":"yaml"},{"section":"http"},{"section":"[yaml]"},{"section":"editor"},{"section":"files"}]}}
// Send:
{"jsonrpc":"2.0","id":3,"result":[{"customTags":["!And scalar","!And mapping","!And sequence","!If scalar","!If mapping","!If sequence","!Not scalar","!Not mapping","!Not sequence","!Equals scalar","!Equals mapping","!Equals sequence","!Or scalar","!Or mapping","!Or sequence","!FindInMap scalar","!FindInMap mapping","!FindInMap sequence","!Base64 scalar","!Base64 mapping","!Base64 sequence","!Cidr scalar","!Cidr mapping","!Cidr sequence","!Ref scalar","!Ref mapping","!Ref sequence","!Sub scalar","!Sub mapping","!Sub sequence","!GetAtt scalar","!GetAtt mapping","!GetAtt sequence","!GetAZs scalar","!GetAZs mapping","!GetAZs sequence","!ImportValue scalar","!ImportValue mapping","!ImportValue sequence","!Select scalar","!Select mapping","!Select sequence","!Split scalar","!Split mapping","!Split sequence","!Join scalar","!Join mapping","!Join sequence","!Condition scalar","!Condition mapping","!Condition sequence"],"schemas":{"https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json":"template.yml"}},null,{"editor.tabSize":2},null,null]}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///private/tmp/zed-yaml-example/template.yml","diagnostics":[{"range":{"start":{"line":15,"character":29},"end":{"line":15,"character":53}},"message":"Incorrect type. Expected \"object(AWS CloudFormation Serverless Application Model (SAM))\".","severity":1,"code":0,"source":"yaml-schema: AWS CloudFormation Serverless Application Model (SAM)","data":{"schemaUri":["https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json"]}}]}}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///private/tmp/zed-yaml-example/template.yml","version":2},"contentChanges":[{"range":{"start":{"line":12,"character":18},"end":{"line":12,"character":18}},"text":" "}]}}
// Send:
{"jsonrpc":"2.0","id":6,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///private/tmp/zed-yaml-example/template.yml"},"position":{"line":12,"character":19},"context":{"triggerKind":2,"triggerCharacter":" "}}}
// Receive:
{"jsonrpc":"2.0","id":6,"result":{"items":[{"kind":12,"label":"!And","insertText":"!And ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!And "}},{"kind":12,"label":"!If","insertText":"!If ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!If "}},{"kind":12,"label":"!Not","insertText":"!Not ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Not "}},{"kind":12,"label":"!Equals","insertText":"!Equals ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Equals "}},{"kind":12,"label":"!Or","insertText":"!Or ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Or "}},{"kind":12,"label":"!FindInMap","insertText":"!FindInMap ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!FindInMap "}},{"kind":12,"label":"!Base64","insertText":"!Base64 ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Base64 "}},{"kind":12,"label":"!Cidr","insertText":"!Cidr ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Cidr "}},{"kind":12,"label":"!Ref","insertText":"!Ref ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Ref "}},{"kind":12,"label":"!Sub","insertText":"!Sub ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Sub "}},{"kind":12,"label":"!GetAtt","insertText":"!GetAtt ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!GetAtt "}},{"kind":12,"label":"!GetAZs","insertText":"!GetAZs ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!GetAZs "}},{"kind":12,"label":"!ImportValue","insertText":"!ImportValue ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!ImportValue "}},{"kind":12,"label":"!Select","insertText":"!Select ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Select "}},{"kind":12,"label":"!Split","insertText":"!Split ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Split "}},{"kind":12,"label":"!Join","insertText":"!Join ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Join "}},{"kind":12,"label":"!Condition","insertText":"!Condition ","insertTextFormat":2,"documentation":"","textEdit":{"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"newText":"!Condition "}}],"isIncomplete":false}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///private/tmp/zed-yaml-example/template.yml","diagnostics":[{"range":{"start":{"line":15,"character":29},"end":{"line":15,"character":53}},"message":"Incorrect type. Expected \"object(AWS CloudFormation Serverless Application Model (SAM))\".","severity":1,"code":0,"source":"yaml-schema: AWS CloudFormation Serverless Application Model (SAM)","data":{"schemaUri":["https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json"]}}]}}
// Send:
{"jsonrpc":"2.0","id":7,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///private/tmp/zed-yaml-example/template.yml"},"range":{"start":{"line":12,"character":19},"end":{"line":12,"character":19}},"context":{"diagnostics":[],"only":["","quickfix","refactor","refactor.extract","source"]}}}
// Receive:
{"jsonrpc":"2.0","id":7,"result":[]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///private/tmp/zed-yaml-example/template.yml"}}}
// Send:
{"jsonrpc":"2.0","id":8,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///private/tmp/zed-yaml-example/template.yml"},"range":{"start":{"line":7,"character":16},"end":{"line":7,"character":16}},"context":{"diagnostics":[],"only":["","quickfix","refactor","refactor.extract","source"]}}}
// Receive:
{"jsonrpc":"2.0","id":8,"result":[]}
For anyone we attempts to reproduce this, I still get a single squiggle (which I think is legit) but the youtube video above shows the previous broken behavior.
I also continue to get "Unresolved tag" errors. I experience it in my own SAM projects, and in the above-provided test from @elvishp2006 . I'm running Zed Version: 0.155.2
.
my (local) settings:
// Folder-specific settings
//
// For a full list of overridable settings, and general information on folder-specific settings,
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
{
"lsp": {
"yaml-language-server": {
"settings": {
"yaml": {
"customTags": [
"!And scalar",
"!And mapping",
"!And sequence",
"!If scalar",
"!If mapping",
"!If sequence",
"!Not scalar",
"!Not mapping",
"!Not sequence",
"!Equals scalar",
"!Equals mapping",
"!Equals sequence",
"!Or scalar",
"!Or mapping",
"!Or sequence",
"!FindInMap scalar",
"!FindInMap mappping",
"!FindInMap sequence",
"!Base64 scalar",
"!Base64 mapping",
"!Base64 sequence",
"!Cidr scalar",
"!Cidr mapping",
"!Cidr sequence",
"!Ref scalar",
"!Ref mapping",
"!Ref sequence",
"!Sub scalar",
"!Sub mapping",
"!Sub sequence",
"!GetAtt scalar",
"!GetAtt mapping",
"!GetAtt sequence",
"!GetAZs scalar",
"!GetAZs mapping",
"!GetAZs sequence",
"!ImportValue scalar",
"!ImportValue mapping",
"!ImportValue sequence",
"!Select scalar",
"!Select mapping",
"!Select sequence",
"!Split scalar",
"!Split mapping",
"!Split sequence",
"!Join scalar",
"!Join mapping",
"!Join sequence",
"!Condition scalar",
"!Condition mapping",
"!Condition sequence"
],
"schemas": {
"https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json": "template.yml"
}
}
}
}
}
}
That doesn't look like language server issue. Here is my minimal project:
.zed/settings.json:
{
"lsp": {
"yaml-language-server": {
"settings": {
"yaml": {
"customTags": [
"!tag1 scalar"
]
}
}
}
}
}
test.yaml:
value_with_know_tag: !tag1 ""
value_with_unknow_tag: !tag2 ""
!tag2
has both warning and error. The error comes from language server (can be found in RPC log).
!tag1
is know by the language server and there is no error for it.
Check for existing issues
Describe the bug / provide steps to reproduce it
I had configured my editor to work with a custom lsp config to yaml files, but it keep saying that my custom tags are Unresolved
Environment
Zed: v0.153.5 (Zed Preview) OS: macOS 14.6.1 Memory: 16 GiB Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature
If applicable, attach your Zed.log file to this issue.
Zed.log