Compare commits
2 commits
Author | SHA1 | Date | |
---|---|---|---|
7a9581fc54 | |||
1e1888c733 |
5 changed files with 39 additions and 47 deletions
|
@ -10,7 +10,11 @@ jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: docker
|
runs-on: docker
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: https://source.mapcomplete.org/actions/checkout@v4
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: https://source.mapcomplete.org/actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: "20"
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm install
|
run: npm install
|
||||||
- name: Lint
|
- name: Lint
|
||||||
|
|
|
@ -2,6 +2,12 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## Version 1.2.3 (2025-04-XX)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Instead of using implementations the extension now correctly used references.
|
||||||
|
|
||||||
## Version 1.2.2 (2025-03-01)
|
## Version 1.2.2 (2025-03-01)
|
||||||
|
|
||||||
This is the last release of the extension on GitHub, from now on you'll be able to find the source code on the [MapComplete Forgejo](https://source.mapcomplete.org/Robin-van-der-Linde/MapCompleteVScode). Releases will still be available on the VScode Marketplace and Open VSX as well.
|
This is the last release of the extension on GitHub, from now on you'll be able to find the source code on the [MapComplete Forgejo](https://source.mapcomplete.org/Robin-van-der-Linde/MapCompleteVScode). Releases will still be available on the VScode Marketplace and Open VSX as well.
|
||||||
|
|
|
@ -56,6 +56,6 @@ It's also possible to install builds for any commit in any branch by checking ou
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Most of the features should be pretty self-explanatory. As for the implementation support, the 'anchor' for this is the id property of the layer, tagRendering or filter. This means that if you want to see where a layer is used, you should be able to see all uses by using `CTRL+F12` on the id property of the layer, or by right-clicking on the id property and selecting "Go to Implementations".
|
Most of the features should be pretty self-explanatory. As for references support, the 'anchor' for this is the id property of the layer, tagRendering or filter. This means that if you want to see where a layer is used, you should be able to see all uses by using `SHIFT+F12` on the id property of the layer, or by right-clicking on the id property and selecting "Go to References".
|
||||||
|
|
||||||

|

|
||||||
|
|
|
@ -4,11 +4,11 @@ import { colorProvider, iconDefinitionProvider } from "./generic";
|
||||||
import {
|
import {
|
||||||
filterCompletionProvider,
|
filterCompletionProvider,
|
||||||
filterDefinitionProvider,
|
filterDefinitionProvider,
|
||||||
filterImplementationProvider,
|
filterReferenceProvider,
|
||||||
layerImplementationProvider,
|
layerReferenceProvider,
|
||||||
tagRenderingCompletionProvider,
|
tagRenderingCompletionProvider,
|
||||||
tagRenderingDefinitionProvider,
|
tagRenderingDefinitionProvider,
|
||||||
tagRenderingImplementationProvider,
|
tagRenderingReferenceProvider,
|
||||||
} from "./layers";
|
} from "./layers";
|
||||||
import { pathDefinitionProvider } from "./license_info";
|
import { pathDefinitionProvider } from "./license_info";
|
||||||
import { CacheWorker } from "./utils/cache";
|
import { CacheWorker } from "./utils/cache";
|
||||||
|
@ -44,9 +44,9 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||||
tagRenderingDefinitionProvider,
|
tagRenderingDefinitionProvider,
|
||||||
filterCompletionProvider,
|
filterCompletionProvider,
|
||||||
filterDefinitionProvider,
|
filterDefinitionProvider,
|
||||||
tagRenderingImplementationProvider,
|
tagRenderingReferenceProvider,
|
||||||
filterImplementationProvider,
|
filterReferenceProvider,
|
||||||
layerImplementationProvider
|
layerReferenceProvider
|
||||||
);
|
);
|
||||||
|
|
||||||
// Activate all license info related features
|
// Activate all license info related features
|
||||||
|
|
|
@ -173,20 +173,20 @@ export const tagRenderingDefinitionProvider =
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export const tagRenderingImplementationProvider =
|
export const tagRenderingReferenceProvider =
|
||||||
vscode.languages.registerImplementationProvider(
|
vscode.languages.registerReferenceProvider(
|
||||||
{
|
{
|
||||||
language: "json",
|
language: "json",
|
||||||
scheme: "file",
|
scheme: "file",
|
||||||
pattern: "**/assets/*/*/*.json",
|
pattern: "**/assets/*/*/*.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
async provideImplementation(
|
async provideReferences(
|
||||||
document: vscode.TextDocument,
|
document: vscode.TextDocument,
|
||||||
position: vscode.Position
|
position: vscode.Position
|
||||||
) {
|
) {
|
||||||
if (vscode.workspace.getConfiguration("mapcomplete").get("caching")) {
|
if (vscode.workspace.getConfiguration("mapcomplete").get("caching")) {
|
||||||
console.log("tagRenderingImplementationProvider");
|
console.log("tagRenderingReferenceProvider");
|
||||||
const text = document.getText();
|
const text = document.getText();
|
||||||
const jsonPath = getCursorPath(text, position);
|
const jsonPath = getCursorPath(text, position);
|
||||||
const rawJsonPath = getRawCursorPath(text, position);
|
const rawJsonPath = getRawCursorPath(text, position);
|
||||||
|
@ -207,7 +207,7 @@ export const tagRenderingImplementationProvider =
|
||||||
} else {
|
} else {
|
||||||
console.log(`Found ${references.length} references to ${to}`);
|
console.log(`Found ${references.length} references to ${to}`);
|
||||||
|
|
||||||
const links: vscode.DefinitionLink[] = [];
|
const links: vscode.Location[] = [];
|
||||||
for (const reference of references) {
|
for (const reference of references) {
|
||||||
console.log(
|
console.log(
|
||||||
`Pushing link from ${document.fileName} to ${reference.reference?.from.uri?.fsPath} at ${reference.reference?.to.range?.[0]?.line}:${reference.reference?.to.range?.[0]?.character}`,
|
`Pushing link from ${document.fileName} to ${reference.reference?.from.uri?.fsPath} at ${reference.reference?.to.range?.[0]?.line}:${reference.reference?.to.range?.[0]?.character}`,
|
||||||
|
@ -217,19 +217,13 @@ export const tagRenderingImplementationProvider =
|
||||||
// Check if we have a targetUri
|
// Check if we have a targetUri
|
||||||
if (reference.reference?.from.uri) {
|
if (reference.reference?.from.uri) {
|
||||||
links.push({
|
links.push({
|
||||||
originSelectionRange: new vscode.Range(
|
range: new vscode.Range(
|
||||||
reference.reference?.to?.range?.[0]?.line ?? 0,
|
|
||||||
reference.reference?.to?.range?.[0]?.character ?? 0,
|
|
||||||
reference.reference?.to?.range?.[1]?.line ?? 0,
|
|
||||||
reference.reference?.to?.range?.[1]?.character ?? 0
|
|
||||||
),
|
|
||||||
targetRange: new vscode.Range(
|
|
||||||
reference.reference?.from?.range?.[0]?.line ?? 0,
|
reference.reference?.from?.range?.[0]?.line ?? 0,
|
||||||
reference.reference?.from?.range?.[0]?.character ?? 0,
|
reference.reference?.from?.range?.[0]?.character ?? 0,
|
||||||
reference.reference?.from?.range?.[1]?.line ?? 0,
|
reference.reference?.from?.range?.[1]?.line ?? 0,
|
||||||
reference.reference?.from?.range?.[1]?.character ?? 0
|
reference.reference?.from?.range?.[1]?.character ?? 0
|
||||||
),
|
),
|
||||||
targetUri: reference.reference?.from?.uri,
|
uri: reference.reference?.from?.uri,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.error("Incomplete reference", reference);
|
console.error("Incomplete reference", reference);
|
||||||
|
@ -407,20 +401,20 @@ export const filterDefinitionProvider =
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export const filterImplementationProvider =
|
export const filterReferenceProvider =
|
||||||
vscode.languages.registerImplementationProvider(
|
vscode.languages.registerReferenceProvider(
|
||||||
{
|
{
|
||||||
language: "json",
|
language: "json",
|
||||||
scheme: "file",
|
scheme: "file",
|
||||||
pattern: "**/assets/*/*/*.json",
|
pattern: "**/assets/*/*/*.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
async provideImplementation(
|
async provideReferences(
|
||||||
document: vscode.TextDocument,
|
document: vscode.TextDocument,
|
||||||
position: vscode.Position
|
position: vscode.Position
|
||||||
) {
|
) {
|
||||||
if (vscode.workspace.getConfiguration("mapcomplete").get("caching")) {
|
if (vscode.workspace.getConfiguration("mapcomplete").get("caching")) {
|
||||||
console.log("filterImplementationProvider");
|
console.log("filterReferenceProvider");
|
||||||
const text = document.getText();
|
const text = document.getText();
|
||||||
const jsonPath = getCursorPath(text, position);
|
const jsonPath = getCursorPath(text, position);
|
||||||
const rawJsonPath = getRawCursorPath(text, position);
|
const rawJsonPath = getRawCursorPath(text, position);
|
||||||
|
@ -442,7 +436,7 @@ export const filterImplementationProvider =
|
||||||
} else {
|
} else {
|
||||||
console.log(`Found ${references.length} references to ${to}`);
|
console.log(`Found ${references.length} references to ${to}`);
|
||||||
|
|
||||||
const links: vscode.DefinitionLink[] = [];
|
const links: vscode.Location[] = [];
|
||||||
for (const reference of references) {
|
for (const reference of references) {
|
||||||
console.log(
|
console.log(
|
||||||
`Pushing link from ${document.fileName} to ${reference.reference?.from.uri?.fsPath} at ${reference.reference?.to.range?.[0]?.line}:${reference.reference?.to.range?.[0]?.character}`,
|
`Pushing link from ${document.fileName} to ${reference.reference?.from.uri?.fsPath} at ${reference.reference?.to.range?.[0]?.line}:${reference.reference?.to.range?.[0]?.character}`,
|
||||||
|
@ -452,19 +446,13 @@ export const filterImplementationProvider =
|
||||||
// Check if we have a targetUri
|
// Check if we have a targetUri
|
||||||
if (reference.reference?.from.uri) {
|
if (reference.reference?.from.uri) {
|
||||||
links.push({
|
links.push({
|
||||||
originSelectionRange: new vscode.Range(
|
range: new vscode.Range(
|
||||||
reference.reference?.to?.range?.[0]?.line ?? 0,
|
|
||||||
reference.reference?.to?.range?.[0]?.character ?? 0,
|
|
||||||
reference.reference?.to?.range?.[1]?.line ?? 0,
|
|
||||||
reference.reference?.to?.range?.[1]?.character ?? 0
|
|
||||||
),
|
|
||||||
targetRange: new vscode.Range(
|
|
||||||
reference.reference?.from?.range?.[0]?.line ?? 0,
|
reference.reference?.from?.range?.[0]?.line ?? 0,
|
||||||
reference.reference?.from?.range?.[0]?.character ?? 0,
|
reference.reference?.from?.range?.[0]?.character ?? 0,
|
||||||
reference.reference?.from?.range?.[1]?.line ?? 0,
|
reference.reference?.from?.range?.[1]?.line ?? 0,
|
||||||
reference.reference?.from?.range?.[1]?.character ?? 0
|
reference.reference?.from?.range?.[1]?.character ?? 0
|
||||||
),
|
),
|
||||||
targetUri: reference.reference?.from?.uri,
|
uri: reference.reference?.from?.uri,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.error("Incomplete reference", reference);
|
console.error("Incomplete reference", reference);
|
||||||
|
@ -484,20 +472,20 @@ export const filterImplementationProvider =
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export const layerImplementationProvider =
|
export const layerReferenceProvider =
|
||||||
vscode.languages.registerImplementationProvider(
|
vscode.languages.registerReferenceProvider(
|
||||||
{
|
{
|
||||||
language: "json",
|
language: "json",
|
||||||
scheme: "file",
|
scheme: "file",
|
||||||
pattern: "**/assets/layers/*/*.json",
|
pattern: "**/assets/layers/*/*.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
async provideImplementation(
|
async provideReferences(
|
||||||
document: vscode.TextDocument,
|
document: vscode.TextDocument,
|
||||||
position: vscode.Position
|
position: vscode.Position
|
||||||
) {
|
) {
|
||||||
if (vscode.workspace.getConfiguration("mapcomplete").get("caching")) {
|
if (vscode.workspace.getConfiguration("mapcomplete").get("caching")) {
|
||||||
console.log("layerImplementationProvider");
|
console.log("layerReferenceProvider");
|
||||||
const text = document.getText();
|
const text = document.getText();
|
||||||
const jsonPath = getCursorPath(text, position);
|
const jsonPath = getCursorPath(text, position);
|
||||||
const rawJsonPath = getRawCursorPath(text, position);
|
const rawJsonPath = getRawCursorPath(text, position);
|
||||||
|
@ -519,7 +507,7 @@ export const layerImplementationProvider =
|
||||||
} else {
|
} else {
|
||||||
console.log(`Found ${references.length} references to ${to}`);
|
console.log(`Found ${references.length} references to ${to}`);
|
||||||
|
|
||||||
const links: vscode.DefinitionLink[] = [];
|
const links: vscode.Location[] = [];
|
||||||
for (const reference of references) {
|
for (const reference of references) {
|
||||||
console.log(
|
console.log(
|
||||||
`Pushing link from ${document.fileName} to ${reference.reference?.from.uri?.fsPath} at ${reference.reference?.to.range?.[0]?.line}:${reference.reference?.to.range?.[0]?.character}`,
|
`Pushing link from ${document.fileName} to ${reference.reference?.from.uri?.fsPath} at ${reference.reference?.to.range?.[0]?.line}:${reference.reference?.to.range?.[0]?.character}`,
|
||||||
|
@ -529,19 +517,13 @@ export const layerImplementationProvider =
|
||||||
// Check if we have a targetUri
|
// Check if we have a targetUri
|
||||||
if (reference.reference?.from.uri) {
|
if (reference.reference?.from.uri) {
|
||||||
links.push({
|
links.push({
|
||||||
originSelectionRange: new vscode.Range(
|
range: new vscode.Range(
|
||||||
reference.reference?.to?.range?.[0]?.line ?? 0,
|
|
||||||
reference.reference?.to?.range?.[0]?.character ?? 0,
|
|
||||||
reference.reference?.to?.range?.[1]?.line ?? 0,
|
|
||||||
reference.reference?.to?.range?.[1]?.character ?? 0
|
|
||||||
),
|
|
||||||
targetRange: new vscode.Range(
|
|
||||||
reference.reference?.from?.range?.[0]?.line ?? 0,
|
reference.reference?.from?.range?.[0]?.line ?? 0,
|
||||||
reference.reference?.from?.range?.[0]?.character ?? 0,
|
reference.reference?.from?.range?.[0]?.character ?? 0,
|
||||||
reference.reference?.from?.range?.[1]?.line ?? 0,
|
reference.reference?.from?.range?.[1]?.line ?? 0,
|
||||||
reference.reference?.from?.range?.[1]?.character ?? 0
|
reference.reference?.from?.range?.[1]?.character ?? 0
|
||||||
),
|
),
|
||||||
targetUri: reference.reference?.from?.uri,
|
uri: reference.reference?.from?.uri,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.error("Incomplete reference", reference);
|
console.error("Incomplete reference", reference);
|
||||||
|
|
Loading…
Add table
Reference in a new issue