1919import org .eclipse .lsp4j .Location ;
2020import org .eclipse .lsp4j .Position ;
2121import org .eclipse .lsp4j .Range ;
22+ import org .jspecify .annotations .NullMarked ;
2223import org .slf4j .Logger ;
2324import org .slf4j .LoggerFactory ;
2425
26+ @ NullMarked
2527public class BibDefinitionProvider extends DefinitionProvider {
2628
2729 private static final Logger LOGGER = LoggerFactory .getLogger (BibDefinitionProvider .class );
@@ -36,17 +38,18 @@ public BibDefinitionProvider(CliPreferences preferences, LspParserHandler parser
3638
3739 @ Override
3840 public List <Location > provideDefinition (String uri , String content , Position position ) {
39- Optional <ParserResult > parserResult = parserHandler .getParserResultForUri (uri );
40-
41- if (parserResult .isEmpty ()) {
41+ Optional <ParserResult > parserResultOpt = parserHandler .getParserResultForUri (uri );
42+ if (parserResultOpt .isEmpty ()) {
4243 return List .of ();
4344 }
4445
45- for (Map .Entry <BibEntry , ParserResult .Range > entry : parserResult .get ().getArticleRanges ().entrySet ()) {
46+ ParserResult parserResult = parserResultOpt .get ();
47+
48+ for (Map .Entry <BibEntry , ParserResult .Range > entry : parserResult .getArticleRanges ().entrySet ()) {
4649 BibEntry bibEntry = entry .getKey ();
4750 ParserResult .Range range = entry .getValue ();
4851 if (bibEntry .getField (StandardField .FILE ).isPresent () && LspRangeUtil .isPositionInRange (position , LspRangeUtil .convertToLspRange (range ))) {
49- Range fileFieldRange = LspRangeUtil .convertToLspRange (parserResult .get (). getFieldRange (bibEntry , StandardField .FILE ));
52+ Range fileFieldRange = LspRangeUtil .convertToLspRange (parserResult .getFieldRange (bibEntry , StandardField .FILE ));
5053 if (!LspRangeUtil .isPositionInRange (position , fileFieldRange )) {
5154 return List .of ();
5255 }
@@ -68,7 +71,7 @@ public List<Location> provideDefinition(String uri, String content, Position pos
6871 int end = start + rangeInFileString .end ();
6972 Range linkRange = LspRangeUtil .convertToLspRange (content , start , end );
7073 if (LspRangeUtil .isPositionInRange (position , linkRange )) {
71- Optional <Path > filePath = FileUtil .find (parserResult .get (). getDatabaseContext (), linkedFile .getLink (), preferences .getFilePreferences ());
74+ Optional <Path > filePath = FileUtil .find (parserResult .getDatabaseContext (), linkedFile .getLink (), preferences .getFilePreferences ());
7275 if (LOGGER .isDebugEnabled () && filePath .isEmpty ()) {
7376 LOGGER .debug ("filePath is empty" );
7477 }
0 commit comments