forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
551
Kha/Tools/linux_arm64/std/haxe/display/Display.hx
Normal file
551
Kha/Tools/linux_arm64/std/haxe/display/Display.hx
Normal file
@ -0,0 +1,551 @@
|
||||
/*
|
||||
* Copyright (C)2005-2019 Haxe Foundation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package haxe.display;
|
||||
|
||||
import haxe.display.JsonModuleTypes;
|
||||
import haxe.display.Position;
|
||||
import haxe.display.Protocol;
|
||||
|
||||
/**
|
||||
Methods of the JSON-RPC-based `--display` protocol in Haxe 4.
|
||||
A lot of the methods are *inspired* by the Language Server Protocol, but there is **no** intention to be directly compatible with it.
|
||||
**/
|
||||
@:publicFields
|
||||
class DisplayMethods {
|
||||
/**
|
||||
The completion request is sent from the client to Haxe to request code completion.
|
||||
Haxe automatically determines the type of completion to use based on the passed position, see `CompletionResultKind`.
|
||||
**/
|
||||
static inline var Completion = new HaxeRequestMethod<CompletionParams, CompletionResult>("display/completion");
|
||||
|
||||
/**
|
||||
The request is sent from the client to Haxe to resolve additional information for a given completion item.
|
||||
**/
|
||||
static inline var CompletionItemResolve = new HaxeRequestMethod<CompletionItemResolveParams, CompletionItemResolveResult>("display/completionItem/resolve");
|
||||
|
||||
/**
|
||||
The find references request is sent from the client to Haxe to find locations that reference the symbol at a given text document position.
|
||||
**/
|
||||
static inline var FindReferences = new HaxeRequestMethod<FindReferencesParams, GotoDefinitionResult>("display/references");
|
||||
|
||||
/**
|
||||
The goto definition request is sent from the client to Haxe to resolve the definition location(s) of a symbol at a given text document position.
|
||||
**/
|
||||
static inline var GotoDefinition = new HaxeRequestMethod<PositionParams, GotoDefinitionResult>("display/definition");
|
||||
|
||||
/**
|
||||
The goto implementation request is sent from the client to Haxe to resolve the implementation location(s) of a symbol at a given text document position.
|
||||
**/
|
||||
static inline var GotoImplementation = new HaxeRequestMethod<PositionParams, GotoDefinitionResult>("display/implementation");
|
||||
|
||||
/**
|
||||
The goto type definition request is sent from the client to Haxe to resolve the type definition location(s) of a symbol at a given text document position.
|
||||
**/
|
||||
static inline var GotoTypeDefinition = new HaxeRequestMethod<PositionParams, GotoTypeDefinitionResult>("display/typeDefinition");
|
||||
|
||||
/**
|
||||
The hover request is sent from the client to Haxe to request hover information at a given text document position.
|
||||
**/
|
||||
static inline var Hover = new HaxeRequestMethod<PositionParams, HoverResult>("display/hover");
|
||||
|
||||
/**
|
||||
This request is sent from the client to Haxe to determine the package for a given file, based on class paths configuration.
|
||||
**/
|
||||
static inline var DeterminePackage = new HaxeRequestMethod<FileParams, DeterminePackageResult>("display/package");
|
||||
|
||||
/**
|
||||
The signature help request is sent from the client to Haxe to request signature information at a given cursor position.
|
||||
**/
|
||||
static inline var SignatureHelp = new HaxeRequestMethod<SignatureHelpParams, SignatureHelpResult>("display/signatureHelp");
|
||||
|
||||
/*
|
||||
TODO:
|
||||
|
||||
- finish completion
|
||||
- diagnostics
|
||||
- codeLens
|
||||
- workspaceSymbols ("project/symbol"?)
|
||||
*/
|
||||
}
|
||||
|
||||
/** Completion **/
|
||||
typedef CompletionParams = PositionParams & {
|
||||
var wasAutoTriggered:Bool;
|
||||
|
||||
/** list of metas to include in responses **/
|
||||
var ?meta:Array<String>;
|
||||
}
|
||||
|
||||
typedef FieldResolution = {
|
||||
/**
|
||||
Whether it's valid to use the unqualified name of the field or not.
|
||||
This is `false` if the identifier is shadowed.
|
||||
**/
|
||||
var isQualified:Bool;
|
||||
|
||||
/**
|
||||
The qualifier that has to be inserted to use the field if `!isQualified`.
|
||||
Can either be `this` or `super` for instance fields for the type name for `static` fields.
|
||||
**/
|
||||
var qualifier:String;
|
||||
}
|
||||
|
||||
typedef DisplayLocal<T> = {
|
||||
var id:Int;
|
||||
var name:String;
|
||||
var type:JsonType<T>;
|
||||
var origin:LocalOrigin;
|
||||
var capture:Bool;
|
||||
var ?extra:{
|
||||
var params:Array<JsonTypeParameter>;
|
||||
var expr:JsonExpr;
|
||||
};
|
||||
var meta:JsonMetadata;
|
||||
var pos:JsonPos;
|
||||
var isInline:Bool;
|
||||
var isFinal:Bool;
|
||||
}
|
||||
|
||||
enum abstract LocalOrigin(Int) {
|
||||
var LocalVariable;
|
||||
var Argument;
|
||||
var ForVariable;
|
||||
var PatternVariable;
|
||||
var CatchVariable;
|
||||
var LocalFunction;
|
||||
}
|
||||
|
||||
enum abstract ClassFieldOriginKind<T>(Int) {
|
||||
/**
|
||||
The field is declared on the current type itself.
|
||||
**/
|
||||
var Self:ClassFieldOriginKind<JsonModuleType<T>>;
|
||||
|
||||
/**
|
||||
The field is a static field brought into context via a static import
|
||||
(`import pack.Module.Type.field`).
|
||||
**/
|
||||
var StaticImport:ClassFieldOriginKind<JsonModuleType<T>>;
|
||||
|
||||
/**
|
||||
The field is declared on a parent type, such as:
|
||||
- a super class field that is not overriden
|
||||
- a forwarded abstract field
|
||||
**/
|
||||
var Parent:ClassFieldOriginKind<JsonModuleType<T>>;
|
||||
|
||||
/**
|
||||
The field is a static extension method brought
|
||||
into context with the `using` keyword.
|
||||
**/
|
||||
var StaticExtension:ClassFieldOriginKind<JsonModuleType<T>>;
|
||||
|
||||
/**
|
||||
This field doesn't belong to any named type, just an anonymous structure.
|
||||
**/
|
||||
var AnonymousStructure:ClassFieldOriginKind<JsonAnon>;
|
||||
|
||||
/**
|
||||
Special fields built into the compiler, such as:
|
||||
- `code` on single-character Strings
|
||||
- `bind()` on functions.
|
||||
**/
|
||||
var BuiltIn:ClassFieldOriginKind<NoData>;
|
||||
|
||||
/**
|
||||
The origin of this class field is unknown.
|
||||
**/
|
||||
var Unknown:ClassFieldOriginKind<NoData>;
|
||||
}
|
||||
|
||||
typedef ClassFieldOrigin<T> = {
|
||||
var kind:ClassFieldOriginKind<T>;
|
||||
var ?args:T;
|
||||
}
|
||||
|
||||
typedef ClassFieldOccurrence<T> = {
|
||||
var field:JsonClassField;
|
||||
var resolution:FieldResolution;
|
||||
var ?origin:ClassFieldOrigin<T>;
|
||||
}
|
||||
|
||||
enum abstract EnumFieldOriginKind<T>(Int) {
|
||||
/**
|
||||
The enum value is declared on the current type itself.
|
||||
**/
|
||||
var Self:EnumFieldOriginKind<JsonModuleType<T>>;
|
||||
|
||||
/**
|
||||
The enum value is brought into context via a static import
|
||||
(`import pack.Module.Enum.Value`).
|
||||
**/
|
||||
var StaticImport:EnumFieldOriginKind<JsonModuleType<T>>;
|
||||
}
|
||||
|
||||
typedef EnumFieldOrigin<T> = {
|
||||
var kind:EnumFieldOriginKind<T>;
|
||||
var ?args:T;
|
||||
}
|
||||
|
||||
typedef EnumFieldOccurrence<T> = {
|
||||
var field:JsonEnumField;
|
||||
var resolution:FieldResolution;
|
||||
var ?origin:EnumFieldOrigin<T>;
|
||||
}
|
||||
|
||||
enum abstract Literal(String) {
|
||||
var Null = "null";
|
||||
var True = "true";
|
||||
var False = "false";
|
||||
var This = "this";
|
||||
var Trace = "trace";
|
||||
}
|
||||
|
||||
enum abstract DisplayModuleTypeKind(Int) {
|
||||
var Class;
|
||||
var Interface;
|
||||
var Enum;
|
||||
var Abstract;
|
||||
var EnumAbstract;
|
||||
|
||||
/** A `typedef` that is just an alias for another type. **/
|
||||
var TypeAlias;
|
||||
|
||||
/** A `typedef` that is an alias for an anonymous structure. **/
|
||||
var Struct;
|
||||
|
||||
/** A type name introduced by `import as` / `import in` **/
|
||||
// var ImportAlias;
|
||||
}
|
||||
|
||||
typedef DisplayModuleType = {
|
||||
var path:JsonTypePath;
|
||||
var pos:JsonPos;
|
||||
var isPrivate:Bool;
|
||||
var params:Array<DisplayModuleTypeParameter>;
|
||||
var meta:JsonMetadata;
|
||||
var doc:JsonDoc;
|
||||
var isExtern:Bool;
|
||||
var isFinal:Bool;
|
||||
var isAbstract:Bool;
|
||||
var kind:DisplayModuleTypeKind;
|
||||
}
|
||||
|
||||
typedef DisplayModuleTypeParameter = {
|
||||
var name:String;
|
||||
var meta:JsonMetadata;
|
||||
var constraints:Array<JsonType<Dynamic>>;
|
||||
}
|
||||
|
||||
typedef DisplayLiteral<T> = {
|
||||
var name:String;
|
||||
}
|
||||
|
||||
enum abstract MetadataTarget(String) {
|
||||
var Class = "TClass";
|
||||
var ClassField = "TClassField";
|
||||
var Abstract = "TAbstract";
|
||||
var AbstractField = "TAbstractField";
|
||||
var Enum = "TEnum";
|
||||
var Typedef = "TTypedef";
|
||||
var AnyField = "TAnyField";
|
||||
var Expr = "TExpr";
|
||||
var TypeParameter = "TTypeParameter";
|
||||
}
|
||||
|
||||
enum abstract Platform(String) {
|
||||
var Cross = "cross";
|
||||
var Js = "js";
|
||||
var Lua = "lua";
|
||||
var Neko = "neko";
|
||||
var Flash = "flash";
|
||||
var Php = "php";
|
||||
var Cpp = "cpp";
|
||||
var Cs = "cs";
|
||||
var Java = "java";
|
||||
var Python = "python";
|
||||
var Hl = "hl";
|
||||
var Eval = "eval";
|
||||
}
|
||||
|
||||
typedef Metadata = {
|
||||
var name:String;
|
||||
var doc:JsonDoc;
|
||||
var parameters:Array<String>;
|
||||
var platforms:Array<Platform>;
|
||||
var targets:Array<MetadataTarget>;
|
||||
var internal:Bool;
|
||||
var ?links:Array<String>;
|
||||
}
|
||||
|
||||
typedef Define = {
|
||||
var name:String;
|
||||
var value:Null<String>;
|
||||
var doc:JsonDoc;
|
||||
var parameters:Array<String>;
|
||||
var platforms:Array<Platform>;
|
||||
var links:Array<String>;
|
||||
}
|
||||
|
||||
typedef Keyword = {
|
||||
var name:KeywordKind;
|
||||
}
|
||||
|
||||
enum abstract KeywordKind(String) to String {
|
||||
var Implements = "implements";
|
||||
var Extends = "extends";
|
||||
var Function = "function";
|
||||
var Var = "var";
|
||||
var If = "if";
|
||||
var Else = "else";
|
||||
var While = "while";
|
||||
var Do = "do";
|
||||
var For = "for";
|
||||
var Break = "break";
|
||||
var Return = "return";
|
||||
var Continue = "continue";
|
||||
var Switch = "switch";
|
||||
var Case = "case";
|
||||
var Default = "default";
|
||||
var Try = "try";
|
||||
var Catch = "catch";
|
||||
var New = "new";
|
||||
var Throw = "throw";
|
||||
var Untyped = "untyped";
|
||||
var Cast = "cast";
|
||||
var Macro = "macro";
|
||||
var Package = "package";
|
||||
var Import = "import";
|
||||
var Using = "using";
|
||||
var Public = "public";
|
||||
var Private = "private";
|
||||
var Static = "static";
|
||||
var Extern = "extern";
|
||||
var Dynamic = "dynamic";
|
||||
var Override = "override";
|
||||
var Overload = "overload";
|
||||
var Class = "class";
|
||||
var Interface = "interface";
|
||||
var Enum = "enum";
|
||||
var Abstract = "abstract";
|
||||
var Typedef = "typedef";
|
||||
var Final = "final";
|
||||
var Inline = "inline";
|
||||
}
|
||||
|
||||
/* enum abstract PackageContentKind(Int) {
|
||||
var Module;
|
||||
var Package;
|
||||
}*/
|
||||
typedef Package = {
|
||||
var path:JsonPackagePath;
|
||||
// var ?contents:Array<{name:String, kind:PackageContentKind}>;
|
||||
}
|
||||
|
||||
typedef Module = {
|
||||
var path:JsonModulePath;
|
||||
// var ?contents:Array<ModuleType>;
|
||||
}
|
||||
|
||||
enum abstract DisplayItemKind<T>(String) {
|
||||
var Local:DisplayItemKind<DisplayLocal<Dynamic>>;
|
||||
var ClassField:DisplayItemKind<ClassFieldOccurrence<Dynamic>>;
|
||||
var EnumField:DisplayItemKind<EnumFieldOccurrence<Dynamic>>;
|
||||
|
||||
/** Only for the enum values in enum abstracts, other fields use `ClassField`. **/
|
||||
var EnumAbstractField:DisplayItemKind<ClassFieldOccurrence<Dynamic>>;
|
||||
|
||||
var Type:DisplayItemKind<DisplayModuleType>;
|
||||
var Package:DisplayItemKind<Package>;
|
||||
var Module:DisplayItemKind<Module>;
|
||||
var Literal:DisplayItemKind<DisplayLiteral<Dynamic>>;
|
||||
var Metadata:DisplayItemKind<Metadata>;
|
||||
var Keyword:DisplayItemKind<Keyword>;
|
||||
var AnonymousStructure:DisplayItemKind<JsonAnon>;
|
||||
var Expression:DisplayItemKind<JsonTExpr>;
|
||||
var TypeParameter:DisplayItemKind<DisplayModuleTypeParameter>;
|
||||
var Define:DisplayItemKind<Define>;
|
||||
}
|
||||
|
||||
typedef DisplayItem<T> = {
|
||||
var kind:DisplayItemKind<T>;
|
||||
var args:T;
|
||||
var ?type:JsonType<Dynamic>;
|
||||
var ?index:Int;
|
||||
}
|
||||
|
||||
typedef DisplayItemOccurrence<T> = {
|
||||
var range:Range;
|
||||
var item:DisplayItem<T>;
|
||||
var ?moduleType:JsonModuleType<Dynamic>;
|
||||
var ?moduleTypeFollowed:JsonModuleType<Dynamic>;
|
||||
}
|
||||
|
||||
typedef FieldCompletionSubject<T> = DisplayItemOccurrence<T> & {
|
||||
var ?iterator:{
|
||||
var type:JsonType<Dynamic>;
|
||||
};
|
||||
var ?keyValueIterator:{
|
||||
var key:JsonType<Dynamic>;
|
||||
var value:JsonType<Dynamic>;
|
||||
};
|
||||
}
|
||||
|
||||
typedef ToplevelCompletion<T> = {
|
||||
var ?expectedType:JsonType<T>;
|
||||
var ?expectedTypeFollowed:JsonType<T>;
|
||||
var ?compatibleTypes:Array<JsonType<Dynamic>>;
|
||||
}
|
||||
|
||||
typedef StructExtensionCompletion = {
|
||||
var isIntersectionType:Bool;
|
||||
}
|
||||
|
||||
typedef PatternCompletion<T> = ToplevelCompletion<T> & {
|
||||
var isOutermostPattern:Bool;
|
||||
}
|
||||
|
||||
enum abstract CompletionModeKind<T>(Int) {
|
||||
var Field:CompletionModeKind<FieldCompletionSubject<Dynamic>>;
|
||||
var StructureField;
|
||||
var Toplevel:CompletionModeKind<ToplevelCompletion<Dynamic>>;
|
||||
var Metadata;
|
||||
var TypeHint;
|
||||
var Extends;
|
||||
var Implements;
|
||||
var StructExtension:CompletionModeKind<StructExtensionCompletion>;
|
||||
var Import;
|
||||
var Using;
|
||||
var New;
|
||||
var Pattern:CompletionModeKind<PatternCompletion<Dynamic>>;
|
||||
var Override;
|
||||
var TypeRelation;
|
||||
var TypeDeclaration;
|
||||
}
|
||||
|
||||
typedef CompletionMode<T> = {
|
||||
var kind:CompletionModeKind<T>;
|
||||
var ?args:T;
|
||||
}
|
||||
|
||||
typedef CompletionResponse<T1, T2> = {
|
||||
var items:Array<DisplayItem<T1>>;
|
||||
var mode:CompletionMode<T2>;
|
||||
var ?replaceRange:Range;
|
||||
var ?isIncomplete:Bool;
|
||||
var ?filterString:String;
|
||||
}
|
||||
|
||||
typedef CompletionResult = Response<Null<CompletionResponse<Dynamic, Dynamic>>>;
|
||||
|
||||
/** CompletionItem Resolve **/
|
||||
typedef CompletionItemResolveParams = {
|
||||
var index:Int;
|
||||
};
|
||||
|
||||
typedef CompletionItemResolveResult = Response<{
|
||||
var item:DisplayItem<Dynamic>;
|
||||
}>;
|
||||
|
||||
/** FindReferences **/
|
||||
typedef FindReferencesParams = PositionParams & {
|
||||
var ?kind:FindReferencesKind;
|
||||
}
|
||||
|
||||
enum abstract FindReferencesKind(String) to String {
|
||||
/**
|
||||
Find only direct references to the requested symbol.
|
||||
Does not look for references to parent or overriding methods.
|
||||
**/
|
||||
var Direct = "direct";
|
||||
|
||||
/**
|
||||
Find references to the base field and all the overidding fields in the inheritance chain.
|
||||
**/
|
||||
var WithBaseAndDescendants = "withBaseAndDescendants";
|
||||
|
||||
/**
|
||||
Find references to the requested field and references to all
|
||||
descendants of the requested field.
|
||||
**/
|
||||
var WithDescendants = "withDescendants";
|
||||
}
|
||||
|
||||
/** GotoDefinition **/
|
||||
typedef GotoDefinitionResult = Response<Array<Location>>;
|
||||
|
||||
/** GotoTypeDefinition **/
|
||||
typedef GotoTypeDefinitionResult = Response<Array<Location>>;
|
||||
|
||||
/** Hover **/
|
||||
typedef HoverResult = Response<Null<HoverDisplayItemOccurence<Dynamic>>>;
|
||||
|
||||
typedef HoverDisplayItemOccurence<T> = DisplayItemOccurrence<T> & {
|
||||
var ?expected:{
|
||||
var ?type:JsonType<Dynamic>;
|
||||
var ?name:{
|
||||
var name:String;
|
||||
var kind:HoverExpectedNameKind;
|
||||
var ?doc:String;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
enum abstract HoverExpectedNameKind(Int) {
|
||||
var FunctionArgument;
|
||||
var StructureField;
|
||||
}
|
||||
|
||||
/** DeterminePackage **/
|
||||
typedef DeterminePackageResult = Response<Array<String>>;
|
||||
|
||||
/** SignatureHelp **/
|
||||
typedef SignatureHelpParams = PositionParams & {
|
||||
var wasAutoTriggered:Bool;
|
||||
}
|
||||
|
||||
typedef SignatureInformation = JsonFunctionSignature & {
|
||||
var ?documentation:String;
|
||||
}
|
||||
|
||||
enum abstract SignatureItemKind(Int) {
|
||||
var Call;
|
||||
var ArrayAccess;
|
||||
}
|
||||
|
||||
typedef SignatureItem = {
|
||||
var signatures:Array<SignatureInformation>;
|
||||
var activeSignature:Int;
|
||||
var activeParameter:Int;
|
||||
var kind:SignatureItemKind;
|
||||
}
|
||||
|
||||
typedef SignatureHelpResult = Response<Null<SignatureItem>>;
|
||||
|
||||
/** General types **/
|
||||
typedef PositionParams = FileParams & {
|
||||
/** Unicode character offset in the file. **/
|
||||
var offset:Int;
|
||||
|
||||
var ?contents:String;
|
||||
}
|
Reference in New Issue
Block a user