use DiagnosticTag.Unnecessary for validations that point out unnecessary things
We have diagnostics in place that point out unnecessary things:
- Unnecessary
@Autowiredannotation on constructors - Unnecessary
@PathVariableannotation when the name matches the parameter name (maybe more?)
We should include the DiagnosticTag.Unnecessary in the resulting diagnostic marker. It allows the client to render the part in the editor faded out.
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnosticTag
(Whether this works in Eclipse would be an additional thing to verify)
About
Unnecessary @PathVariable annotation when the name matches the parameter name (maybe more?)
Do you mean about:
From
@GetMapping(path={"/ciencias/{id}","/ciencias/{id}.html"})
String findOneById(Model model, @PathVariable(name="id") Integer id) {
model.addAttribute("ciencia", cienciaService.findById(id));
return "ciencia/findOne";
}
To
@GetMapping(path={"/ciencias/{id}","/ciencias/{id}.html"})
String findOneById(Model model, @PathVariable Integer id) {
model.addAttribute("ciencia", cienciaService.findById(id));
return "ciencia/findOne";
}
Therefore from @PathVariable(name="id") to @PathVariable. It thanks to:
- "/ciencias/{id}"
- "/ciencias/{id}.html"
If yes, it applies for @RequestParam too such as:
From
@GetMapping(path={"/ciencia","/ciencia.html"})
String findOneById(Model model, @RequestParam(name="id") Integer id) {
model.addAttribute("ciencia", cienciaService.findById(id));
return "ciencia/findOne";
}
To
@GetMapping(path={"/ciencia","/ciencia.html"})
String findOneById(Model model, @RequestParam Integer id) {
model.addAttribute("ciencia", cienciaService.findById(id));
return "ciencia/findOne";
}
But here is tricky because the URL is unknown until runtime
@manueljordan This issue is purely about adopting the DiagnosticTag capability of the language server protocol to mark diagnostics as deprecated or unnecessary, so that the client can render those diagnostics accordingly. The two mentioned annotations were just examples.
The validation that you mentioned for @RequestParam already shipped a few releases ago.
Fixed with https://github.com/spring-projects/sts4/commit/e285e3abb76c75ae321f3020e44f542a3dea4141