Skip to content

Commit 06612be

Browse files
ayame113aminya
authored andcommitted
feat: add LocationLink support for definition-adapter
1 parent 9abd5b6 commit 06612be

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

lib/adapters/definition-adapter.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type * as atomIde from "atom-ide-base"
22
import Convert from "../convert"
33
import * as Utils from "../utils"
4-
import { LanguageClientConnection, Location, ServerCapabilities } from "../languageclient"
4+
import { LanguageClientConnection, Location, LocationLink, ServerCapabilities } from "../languageclient.ts"
55
import { Point, TextEditor, Range } from "atom"
66

77
/**
@@ -68,11 +68,11 @@ export default class DefinitionAdapter {
6868
* @param locationResult Either a single {Location} object or an {Array} of {Locations}.
6969
* @returns An {Array} of {Location}s or {null} if the locationResult was null.
7070
*/
71-
public static normalizeLocations(locationResult: Location | Location[]): Location[] | null {
71+
public static normalizeLocations(locationResult: Location | Location[] | LocationLink[]): Location[] | LocationLink[] | null {
7272
if (locationResult == null) {
7373
return null
7474
}
75-
return (Array.isArray(locationResult) ? locationResult : [locationResult]).filter((d) => d.range.start != null)
75+
return (Array.isArray(locationResult) ? locationResult : [locationResult]).filter((d) => (d.range||d.targetRange).start != null)
7676
}
7777

7878
/**
@@ -82,11 +82,11 @@ export default class DefinitionAdapter {
8282
* @param languageName The name of the language these objects are written in.
8383
* @returns An {Array} of {Definition}s that represented the converted {Location}s.
8484
*/
85-
public static convertLocationsToDefinitions(locations: Location[], languageName: string): atomIde.Definition[] {
85+
public static convertLocationsToDefinitions(locations: Location[] | LocationLink[], languageName: string): atomIde.Definition[] {
8686
return locations.map((d) => ({
87-
path: Convert.uriToPath(d.uri),
88-
position: Convert.positionToPoint(d.range.start),
89-
range: Range.fromObject(Convert.lsRangeToAtomRange(d.range)),
87+
path: Convert.uriToPath(d.uri||d.targetUri),
88+
position: Convert.positionToPoint((d.range||d.targetRange).start),
89+
range: Range.fromObject(Convert.lsRangeToAtomRange(d.range||d.targetRange)),
9090
language: languageName,
9191
}))
9292
}

0 commit comments

Comments
 (0)