Open belcar-s opened 2 years ago
Code Actions are handled by Nova and not forwarded to extensions. It's why Code Actions were broken for many extensions (including this one) until Panic fixed a lot of language client issues in Nova 9.
That said, I think this is actually a bug with Rust Analyzer. When I use your sample code, this is the response to Nova's request for CodeActions:
{
"jsonrpc":"2.0",
"id":5,
"result":[
{
"title":"Inline into all callers",
"kind":"refactor.inline",
"edit":{
"documentChanges":[
{
"textDocument":{"uri":"file:///Users/xxxx/issue-30/src/main.rs","version":1},
"edits":[
{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":5}},"newText":"width1"},
{"range":{"start":{"line":4,"character":5},"end":{"line":4,"character":21}},"newText":" "},
{"range":{"start":{"line":4,"character":21},"end":{"line":4,"character":21}},"newText":"*"},
{"range":{"start":{"line":4,"character":21},"end":{"line":4,"character":21}},"newText":" "},
{"range":{"start":{"line":4,"character":21},"end":{"line":4,"character":21}},"newText":"height1"},
{"range":{"start":{"line":9,"character":0},"end":{"line":11,"character":1}},"newText":""}
]
}
]
}
},
{
"title":"Generate a documentation template",
"kind":"",
"edit":{"documentChanges":[
{
"textDocument":{"uri":"file:///Users/xxxx/issue-30/src/main.rs","version":1},
"edits":[
{"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":0}},"newText":"/// .\n"}
]
}
]
}
}
]
}Content-Length: 188
Line/character values are zero-indexed, so as you see above Nova is doing what Rust Analyzer is telling it and overwriting line 5. I tried changing the function name to rect_area
, but it still replaces 'area' in the string. I'll go ahead and file an issue with Rust Analyzer.
Describe the bug After clicking on the Inline into all callers option displayed in the code actions menu, changes are made to the document which may have been unforeseen by the programmer(s) (?).
To Reproduce Steps to reproduce the behavior:
Expected behavior In the conditions demonstrated in the video below, I expected
area(width1, height1)
to be replaced withwidth1 * height1
.Screenshots If applicable, add screenshots to help explain your problem.
https://user-images.githubusercontent.com/73370025/171007547-fa491331-3171-4a33-8e11-e65989cab040.mov
Versions (please complete the following information):
Additional context I don't know what additional information can be useful :(.