private static async Task RunMain() { var tsCtx = new TypeScriptContext(); await tsCtx.LoadComponentsAsync(); const string mainFileName = "main.ts"; //Load script string script = @" class Program { static main() { console.log(""Hello, World!""); } static other() { console.log(""Hello, Other World!""); } } Program.main(); Progra Program. Program.ot "; tsCtx.OpenFile(mainFileName, script); var classNameCompletionInfo = await tsCtx.GetCompletionsAtPositionAsync(mainFileName, 192 /* The 'Progra' line*/); var methodCompletionInfo = await tsCtx.GetCompletionsAtPositionAsync(mainFileName, 202 /* The 'Program.' line*/); var noCompletionsInfo = await tsCtx.GetCompletionsAtPositionAsync(mainFileName, script.Length - 2); }
private async Task <List <CodeCompletionData> > CodeCompleteAtAsync(IEditor editor, int index, List <UnsavedFile> unsavedFiles, string filter = "") { var currentUnsavedFile = unsavedFiles.FirstOrDefault(f => f.FileName == editor.SourceFile.FilePath); var currentFileConts = currentUnsavedFile?.Contents ?? File.ReadAllText(editor.SourceFile.FilePath); var caretPosition = index; var completions = await _typeScriptContext.GetCompletionsAtPositionAsync(editor.SourceFile.FilePath, caretPosition); var editorCompletions = completions.Entries.Select(cc => { var ccData = new CodeCompletionData(cc.Name, cc.Name) { Kind = ConvertCodeCompletionKind(cc.Kind), BriefComment = cc.Name }; return(ccData); }) .ToList(); return(editorCompletions); }