List of usage examples for org.antlr.v4.runtime.misc MultiMap map
public void map(K key, V value)
From source file:com.github.drrb.rust.netbeans.structure.RustStructureScanner.java
License:Open Source License
@Override public Map<String, List<OffsetRange>> folds(ParserResult info) { MultiMap<String, OffsetRange> folds = new MultiMap<>(); NetbeansRustParserResult parseResult = (NetbeansRustParserResult) info; RustSourceIndex index = parseResult.getIndex(); List<RustFunction> functions = index.getFunctions(); for (RustFunction function : functions) { //TODO: this raises a NPE when typing a function. Insert millions of null checks? folds.map(CODEBLOCKS_FOLD_TYPE, function.getBody().getOffsetRange()); }//from ww w .ja va 2 s . c o m List<RustStruct> structs = index.getStructs(); for (RustStruct struct : structs) { folds.map(CODEBLOCKS_FOLD_TYPE, struct.getBody().getOffsetRange()); } List<RustEnum> enums = index.getEnums(); for (RustEnum rustEnum : enums) { folds.map(CODEBLOCKS_FOLD_TYPE, rustEnum.getBody().getOffsetRange()); } List<RustImpl> impls = index.getImpls(); for (RustImpl impl : impls) { folds.map(CODEBLOCKS_FOLD_TYPE, impl.getBody().getOffsetRange()); List<RustImplMethod> implMethods = impl.getBody().getMethods(); for (RustImplMethod implMethod : implMethods) { folds.map(CODEBLOCKS_FOLD_TYPE, implMethod.getBody().getOffsetRange()); } } List<RustTrait> traits = index.getTraits(); for (RustTrait trait : traits) { folds.map(CODEBLOCKS_FOLD_TYPE, trait.getBody().getOffsetRange()); } List<RustTraitImpl> traitImpls = index.getTraitImpls(); for (RustTraitImpl traitImpl : traitImpls) { folds.map(CODEBLOCKS_FOLD_TYPE, traitImpl.getBody().getOffsetRange()); List<RustImplMethod> traitImplMethods = traitImpl.getBody().getMethods(); for (RustImplMethod traitImplMethod : traitImplMethods) { folds.map(CODEBLOCKS_FOLD_TYPE, traitImplMethod.getBody().getOffsetRange()); } } List<RustDocComment> rustdocs = index.getDocComments(); for (RustDocComment docComment : rustdocs) { if (docComment.getText().contains("\n")) { //Don't fold single line comments folds.map(DOC_COMMENTS_FOLD_TYPE, docComment.getOffsetRange()); } } return folds; }