Use mapRange
This commit is contained in:
@@ -16,6 +16,7 @@ import {getWorkflowContext, WorkflowContext} from "./context/workflow-context";
|
||||
import {nullTrace} from "./nulltrace";
|
||||
import {getAllowedContext} from "./utils/allowed-context";
|
||||
import {findToken} from "./utils/find-token";
|
||||
import {mapRange} from "./utils/range";
|
||||
import {transform} from "./utils/transform";
|
||||
import {Value, ValueProviderConfig} from "./value-providers/config";
|
||||
import {defaultValueProviders} from "./value-providers/default";
|
||||
@@ -93,16 +94,7 @@ export async function complete(
|
||||
const values = await getValues(token, keyToken, parent, valueProviderConfig, workflowContext);
|
||||
let replaceRange: Range | undefined;
|
||||
if (token?.range) {
|
||||
replaceRange = {
|
||||
start: {
|
||||
line: token.range.start[0] - 1,
|
||||
character: token.range.start[1] - 1
|
||||
},
|
||||
end: {
|
||||
line: token.range.end[0] - 1,
|
||||
character: token.range.end[1] - 1
|
||||
}
|
||||
};
|
||||
replaceRange = mapRange(token.range);
|
||||
}
|
||||
|
||||
return values.map(value => {
|
||||
|
||||
@@ -5,6 +5,7 @@ import {Position, TextDocument} from "vscode-languageserver-textdocument";
|
||||
import {Hover} from "vscode-languageserver-types";
|
||||
import {nullTrace} from "./nulltrace";
|
||||
import {findToken} from "./utils/find-token";
|
||||
import {mapRange} from "./utils/range";
|
||||
|
||||
// Render value description and Context when hovering over a key in a MappingToken
|
||||
export async function hover(document: TextDocument, position: Position): Promise<Hover | null> {
|
||||
@@ -38,16 +39,7 @@ function getHover(token: TemplateToken): Hover | null {
|
||||
|
||||
return {
|
||||
contents: description,
|
||||
range: {
|
||||
start: {
|
||||
line: token.range!.start[0] - 1,
|
||||
character: token.range!.start[1] - 1
|
||||
},
|
||||
end: {
|
||||
line: token.range!.end[0] - 1,
|
||||
character: token.range!.end[1] - 1
|
||||
}
|
||||
}
|
||||
range: mapRange(token.range)
|
||||
} as Hover;
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import {TokenRange} from "@github/actions-workflow-parser/templates/tokens/token-range";
|
||||
import {Range} from "vscode-languageserver-types";
|
||||
|
||||
export function mapRange(range: TokenRange | undefined): Range {
|
||||
if (!range) {
|
||||
return {
|
||||
start: {
|
||||
line: 1,
|
||||
character: 1
|
||||
},
|
||||
end: {
|
||||
line: 1,
|
||||
character: 1
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
start: {
|
||||
line: range.start[0] - 1,
|
||||
character: range.start[1] - 1
|
||||
},
|
||||
end: {
|
||||
line: range.end[0] - 1,
|
||||
character: range.end[1] - 1
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -14,10 +14,9 @@ import {Definition} from "@github/actions-workflow-parser/templates/schema/defin
|
||||
import {BasicExpressionToken} from "@github/actions-workflow-parser/templates/tokens/basic-expression-token";
|
||||
import {StringToken} from "@github/actions-workflow-parser/templates/tokens/string-token";
|
||||
import {TemplateToken} from "@github/actions-workflow-parser/templates/tokens/template-token";
|
||||
import {TokenRange} from "@github/actions-workflow-parser/templates/tokens/token-range";
|
||||
import {File} from "@github/actions-workflow-parser/workflows/file";
|
||||
import {TextDocument} from "vscode-languageserver-textdocument";
|
||||
import {Diagnostic, DiagnosticSeverity, Range, URI} from "vscode-languageserver-types";
|
||||
import {Diagnostic, DiagnosticSeverity, URI} from "vscode-languageserver-types";
|
||||
|
||||
import {ContextProviderConfig} from "./context-providers/config";
|
||||
import {getContext} from "./context-providers/default";
|
||||
@@ -25,6 +24,7 @@ import {getWorkflowContext, WorkflowContext} from "./context/workflow-context";
|
||||
import {AccessError, wrapDictionary} from "./expression-validation/error-dictionary";
|
||||
import {nullTrace} from "./nulltrace";
|
||||
import {findToken} from "./utils/find-token";
|
||||
import {mapRange} from "./utils/range";
|
||||
import {ValueProviderConfig, ValueProviderKind} from "./value-providers/config";
|
||||
import {defaultValueProviders} from "./value-providers/default";
|
||||
|
||||
@@ -80,32 +80,6 @@ export async function validate(
|
||||
return diagnostics;
|
||||
}
|
||||
|
||||
function mapRange(range: TokenRange | undefined): Range {
|
||||
if (!range) {
|
||||
return {
|
||||
start: {
|
||||
line: 1,
|
||||
character: 1
|
||||
},
|
||||
end: {
|
||||
line: 1,
|
||||
character: 1
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
start: {
|
||||
line: range.start[0] - 1,
|
||||
character: range.start[1] - 1
|
||||
},
|
||||
end: {
|
||||
line: range.end[0] - 1,
|
||||
character: range.end[1] - 1
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async function additionalValidations(
|
||||
diagnostics: Diagnostic[],
|
||||
documentUri: URI,
|
||||
|
||||
Reference in New Issue
Block a user