Skip to content

Commit dd083d3

Browse files
committed
feat: implemented provideFoldingRanges
1 parent ddde114 commit dd083d3

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/monaco/code2monaco.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,3 +426,13 @@ export function asColorPresentation(item: vscode.ColorPresentation): monaco.lang
426426
additionalTextEdits: item.additionalTextEdits ? item.additionalTextEdits.map(asTextEdit) : undefined,
427427
};
428428
}
429+
430+
export function asFoldingRange(item: vscode.FoldingRange): monaco.languages.FoldingRange {
431+
return {
432+
start: item.startLine,
433+
end: item.endLine,
434+
kind: {
435+
value: item.kind ?? '',
436+
},
437+
};
438+
}

src/monaco/ls.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,17 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
509509
}
510510
},
511511
}),
512+
monaco.languages.registerFoldingRangeProvider(lang, {
513+
provideFoldingRanges: async (model) => {
514+
const document = getTextDocument(model);
515+
if (document) {
516+
const codeResult = await ds.getFoldingRanges(document);
517+
if (codeResult) {
518+
return codeResult.map(code2monaco.asFoldingRange);
519+
}
520+
}
521+
},
522+
}),
512523
);
513524

514525
return ls;

0 commit comments

Comments
 (0)