astro-ghostcms/.pnpm-store/v3/files/6e/0da323d3f95b131cdcdd0ee4c35...

121 lines
3.6 KiB
Plaintext
Raw Normal View History

2024-02-14 14:10:47 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.withRanges = exports.withCallHierarchyOutgoingCalls = exports.withCallHierarchyIncomingCalls = exports.withLocationLinks = exports.withLocations = exports.withDiagnostics = exports.withDocumentChanges = exports.withTextEdits = exports.withCodeAction = exports.createLocationSet = void 0;
function createLocationSet() {
const set = new Set();
return {
add,
has,
};
function add(item) {
if (has(item)) {
return false;
}
set.add(getKey(item));
return true;
}
function has(item) {
return set.has(getKey(item));
}
function getKey(item) {
return [
item.uri,
item.range.start.line,
item.range.start.character,
item.range.end.line,
item.range.end.character,
].join(':');
}
}
exports.createLocationSet = createLocationSet;
function withCodeAction(items) {
return dedupe(items, item => [
item.title
].join(':'));
}
exports.withCodeAction = withCodeAction;
function withTextEdits(items) {
return dedupe(items, item => [
item.range.start.line,
item.range.start.character,
item.range.end.line,
item.range.end.character,
item.newText,
].join(':'));
}
exports.withTextEdits = withTextEdits;
function withDocumentChanges(items) {
return dedupe(items, item => JSON.stringify(item)); // TODO: improve this
}
exports.withDocumentChanges = withDocumentChanges;
function withDiagnostics(items) {
return dedupe(items, item => [
item.range.start.line,
item.range.start.character,
item.range.end.line,
item.range.end.character,
item.source,
item.code,
item.severity,
item.message,
].join(':'));
}
exports.withDiagnostics = withDiagnostics;
function withLocations(items) {
return dedupe(items, item => [
item.uri,
item.range.start.line,
item.range.start.character,
item.range.end.line,
item.range.end.character,
].join(':'));
}
exports.withLocations = withLocations;
function withLocationLinks(items) {
return dedupe(items, item => [
item.targetUri,
item.targetSelectionRange.start.line,
item.targetSelectionRange.start.character,
item.targetSelectionRange.end.line,
item.targetSelectionRange.end.character,
// ignore difference targetRange
].join(':'));
}
exports.withLocationLinks = withLocationLinks;
function withCallHierarchyIncomingCalls(items) {
return dedupe(items, item => [
item.from.uri,
item.from.range.start.line,
item.from.range.start.character,
item.from.range.end.line,
item.from.range.end.character,
].join(':'));
}
exports.withCallHierarchyIncomingCalls = withCallHierarchyIncomingCalls;
function withCallHierarchyOutgoingCalls(items) {
return dedupe(items, item => [
item.to.uri,
item.to.range.start.line,
item.to.range.start.character,
item.to.range.end.line,
item.to.range.end.character,
].join(':'));
}
exports.withCallHierarchyOutgoingCalls = withCallHierarchyOutgoingCalls;
function withRanges(items) {
return dedupe(items, item => [
item.start.line,
item.start.character,
item.end.line,
item.end.character,
].join(':'));
}
exports.withRanges = withRanges;
function dedupe(items, getKey) {
const map = new Map();
for (const item of items.reverse()) {
map.set(getKey(item), item);
}
return [...map.values()];
}
//# sourceMappingURL=dedupe.js.map