public void AdjustAutocomplete(AutoCompleteProvider autoComplete) { if (AggregateConfiguration != null) { autoComplete.Add(AggregateConfiguration); } }
public void AutoCompleteOnImportShouldProvideOnlyOneModule() { var autoCompleteProvider = new AutoCompleteProvider(m_fixture.ProviderContext); var result = autoCompleteProvider.Completion( new TextDocumentPositionParams() { Position = new Position() { Line = 1 - 1, Character = 26, }, TextDocument = new TextDocumentIdentifier() { Uri = m_fixture.GetChildUri(@"project\project.bxt") } }, CancellationToken.None); Assert.True(result.IsSuccess); var completionItems = result.SuccessValue.Left .OrderBy(ci => ci.Label) .ToArray(); Assert.Equal(1, completionItems.Length); // TODO: Change to just BuildXL.DScript check after April 15, 2019 when deployed bits have updated. Assert.True(completionItems[0].Label == "BuildXL.DScript.LanguageServer.UnitTests.Data.Module" || completionItems[0].Label == "BuildXLScript.LanguageServer.UnitTests.Data.Module"); }
public void AutoCompleteWithNestedObjectIteralAssignedToVariable() { var autoCompleteProvider = new AutoCompleteProvider(m_fixture.ProviderContext); var result = autoCompleteProvider.Completion( new TextDocumentPositionParams() { Position = new Position() { Line = 99 - 1, Character = 32, }, TextDocument = new TextDocumentIdentifier() { Uri = m_fixture.GetChildUri(@"module/lib.bxt") } }, CancellationToken.None); Assert.True(result.IsSuccess); var completionItems = result.SuccessValue.Left .OrderBy(ci => ci.Label) .ToArray(); Assert.Equal(1, completionItems.Length); Assert.Equal("interfaceAProperty", completionItems[0].Label); }
private void FigureOutGlobalsAndAutoComplete() { var factory = new FilterUIOptionsFactory(); var options = factory.Create(_extractionFilter); var autoCompleteFactory = new AutoCompleteProviderFactory(Activator); _autoCompleteProvider = autoCompleteFactory.Create(_extractionFilter.GetQuerySyntaxHelper()); foreach (var t in options.GetTableInfos()) { _autoCompleteProvider.Add(t); } foreach (var c in options.GetIColumnsInFilterScope()) { _autoCompleteProvider.Add(c); } GlobalFilterParameters = options.GetGlobalParametersInFilterScope(); foreach (ISqlParameter parameter in GlobalFilterParameters) { _autoCompleteProvider.Add(parameter); } _autoCompleteProvider.RegisterForEvents(QueryEditor); }
private void TestAutoCompleteLabels(List <AutoCompleteLabelTestInformation> testList) { var autoCompleteProvider = new AutoCompleteProvider(m_fixture.ProviderContext); foreach (var test in testList) { var result = autoCompleteProvider.Completion( new TextDocumentPositionParams() { Position = new Position() { Line = test.line - 1, Character = test.character, }, TextDocument = new TextDocumentIdentifier() { Uri = m_fixture.GetChildUri(test.filePath) } } , CancellationToken.None); Assert.True(result.IsSuccess); var completionItems = result.SuccessValue.Left.OrderBy(ci => ci.Label).ToArray(); Assert.True(test.expectedLabels.Count == completionItems.Length, "Expected label count does not match\r\n" + "Expected: \r \n" + TestItemToString(test) + "Actual: \r\n" + CompletionItemsLabelsToString(completionItems)); foreach (var expectedLabel in test.expectedLabels) { var hasLabel = completionItems.Any(item => item.Label.Equals(expectedLabel)); Assert.True(hasLabel, "Expected labels not found\r\n" + "Expected: \r \n" + TestItemToString(test) + "Actual: \r\n" + CompletionItemsLabelsToString(completionItems)); } } }
public void AutoCompleteFunctionCallThroughReExport() { var autoCompleteProvider = new AutoCompleteProvider(m_fixture.ProviderContext); var result = autoCompleteProvider.Completion( new TextDocumentPositionParams() { Position = new Position() { Line = 3 - 1, Character = 40, }, TextDocument = new TextDocumentIdentifier() { Uri = m_fixture.GetChildUri(@"module\testExportedFunction.bxt") } }, CancellationToken.None); Assert.True(result.IsSuccess); var completionItems = result.SuccessValue.Left .OrderBy(ci => ci.Label) .ToArray(); Assert.Equal(1, completionItems.Length); Assert.Equal("myFunctionProperty", completionItems[0].Label); }
public void AdjustAutocomplete(AutoCompleteProvider autoComplete) { if (Cohort == null) { return; } var ect = Cohort.ExternalCohortTable; var table = ect.Discover().ExpectTable(ect.TableName); autoComplete.Add(table); }
public void SetCollection(IActivateItems activator, IPersistableObjectCollection collection) { _collection = (IViewSQLAndResultsCollection)collection; CommonFunctionality.ClearToolStrip(); btnExecuteSql.Image = activator.CoreIconProvider.GetImage(RDMPConcept.SQL, OverlayKind.Execute); var overlayer = new IconOverlayProvider(); btnResetSql.Image = overlayer.GetOverlay(FamFamFamIcons.text_align_left, OverlayKind.Problem); if (_autoComplete == null) { _autoComplete = new AutoCompleteProviderFactory(activator).Create(_collection.GetQuerySyntaxHelper()); _collection.AdjustAutocomplete(_autoComplete); _autoComplete.RegisterForEvents(_scintilla); } SetItemActivator(activator); CommonFunctionality.Add(btnExecuteSql); CommonFunctionality.Add(btnResetSql); foreach (var c in _timeoutControls.GetControls()) { CommonFunctionality.Add(c); } foreach (DatabaseEntity d in _collection.GetToolStripObjects()) { CommonFunctionality.AddToMenu(new ExecuteCommandShow(activator, d, 0, true)); } CommonFunctionality.Add(new ToolStripSeparator()); CommonFunctionality.Add(_serverHeader); try { var dap = _collection.GetDataAccessPoint(); _serverHeader.Text = $"Server: {dap.Server} Database: {dap.Database}"; _serverHeader.Image = _databaseTypeIconProvider.GetImage(dap.DatabaseType); } catch (Exception) { _serverHeader.Text = "Server:Unknown"; } RefreshUIFromDatabase(); }
public LanguageServiceProviders(ProviderContext providerContext, FrontEndEngineAbstraction engineAbstraction, IProgressReporter progressReporter) { Contract.Requires(providerContext != null); Contract.Requires(engineAbstraction != null); m_autoCompleteProvider = new AutoCompleteProvider(providerContext); m_gotoDefinitionProvider = new GotoDefinitionProvider(providerContext); m_findReferencesProvider = new FindReferencesProvider(providerContext, progressReporter); m_formattingProvider = new FormattingProvider(providerContext, engineAbstraction); m_executeCommandProvider = new ExecuteCommandProvider(providerContext); m_codeActionProvider = new CodeActionProvider(providerContext, m_executeCommandProvider); m_codeLensProvider = new CodeLensProvider(providerContext); m_hoverProvider = new HoverProvider(providerContext); m_diagnosticProvider = new DiagnosticProvider(providerContext); m_signatureHelpProvider = new SignatureHelpProvider(providerContext); m_symbolProvider = new SymbolProvider(providerContext); m_renameProvider = new RenameProvider(providerContext, m_findReferencesProvider); }
public void AutoCompleteWithDot() { var autoCompleteProvider = new AutoCompleteProvider(m_fixture.ProviderContext); var result = autoCompleteProvider.Completion( new TextDocumentPositionParams() { Position = new Position() { Line = 19 - 1, Character = 96, }, TextDocument = new TextDocumentIdentifier() { Uri = m_fixture.GetChildUri(@"project\project.bxt") } }, CancellationToken.None); Assert.True(result.IsSuccess); var completionItems = result.SuccessValue.Left .OrderBy(ci => ci.Label) .ToArray(); Assert.Equal(2, completionItems.Length); Assert.Equal("deploy", completionItems[0].Label); Assert.Equal(CompletionItemKind.Function, completionItems[0].Kind); Assert.Equal( @"Callback for when deployments will be FlattenedResult @param item - The item that is deployable. Think of this as the 'this' pointer which is not accessable from interface implementations. @param targetFolder - The folder to place this deployable item into @param onDuplicate - The error handler for duplicate files @param currentResult - The current flattened result to add the extra flattened files to @return - The updated flattened result.", completionItems[0].Documentation); Assert.Equal("deploy(item: Object, targetFolder: RelativePath, reportDuplicate: ReportDuplicateDeploymentError, currentResult: FlattenedResult, deploymentOptions?: Object)", completionItems[0].Detail); Assert.Equal("name", completionItems[1].Label); Assert.Equal("name", completionItems[1].InsertText); Assert.Equal(CompletionItemKind.Property, completionItems[1].Kind); Assert.Equal(string.Empty, completionItems[1].Documentation); Assert.Equal("name: string", completionItems[1].Detail); }
private void SetupAutocomplete() { //if there's an old one dispose it if (_autoComplete == null) { _autoComplete = new AutoCompleteProviderFactory(Activator).Create(_processTask.LoadMetadata.GetQuerySyntaxHelper()); } else { _autoComplete.Clear(); } foreach (var table in _processTask.LoadMetadata.GetDistinctTableInfoList(false)) { _autoComplete.Add(table, _processTask.LoadStage); } _autoComplete.RegisterForEvents(_scintilla); }
public void CompletionWithinObjectLiteral() { var autoCompleteProvider = new AutoCompleteProvider(m_fixture.ProviderContext); var result = autoCompleteProvider.Completion( new TextDocumentPositionParams() { Position = new Position() { Line = 24 - 1, Character = 5 - 1, }, TextDocument = new TextDocumentIdentifier() { Uri = m_fixture.GetChildUri(@"project\project.bxt") } }, CancellationToken.None); Assert.True(result.IsSuccess); var completionItems = result.SuccessValue.Left .OrderBy(ci => ci.Label) .ToArray(); Assert.Equal(2, completionItems.Length); Assert.Equal("a", completionItems[0].InsertText); Assert.Equal(CompletionItemKind.Property, completionItems[0].Kind); Assert.Equal("doc string for a", completionItems[0].Documentation); Assert.Equal("a?: string", completionItems[0].Detail); Assert.Equal("b", completionItems[1].InsertText); Assert.Equal(CompletionItemKind.Property, completionItems[1].Kind); Assert.Equal("doc string for b", completionItems[1].Documentation); Assert.Equal("b?: DeployableItem", completionItems[1].Detail); }
public void NullTrie_WillThrow() { _Provider = new AutoCompleteProvider(null, new TrieNodeFactory <string>()); }
public void AdjustAutocomplete(AutoCompleteProvider autoComplete) { autoComplete.Add(_table); }
public void AdjustAutocomplete(AutoCompleteProvider autoComplete) { autoComplete.Add(ColumnInfo); }
public void NullTrieNodeFactory_WillThrow() { _Provider = new AutoCompleteProvider(new Trie <string>(), null); }
public void Setup() { _Provider = new AutoCompleteProvider(new Trie <string>(), new TrieNodeFactory <string>()); _Provider.Train("The third thing that I need to tell you is that this thing does not think thoroughly."); }
public void AdjustAutocomplete(AutoCompleteProvider autoComplete) { autoComplete.Add(TableInfo); }
public void Setup() { _Provider = new AutoCompleteProvider(new Trie <string>(), new TrieNodeFactory <string>()); }
public ConsoleGuiSqlEditor(IBasicActivateItems activator, IViewSQLAndResultsCollection collection) { this.Activator = activator; this._collection = collection; Modal = true; ColorScheme = ConsoleMainWindow.ColorScheme; // Tabs (query and results) TabView = new TabView() { Width = Dim.Fill(), Height = Dim.Fill(), Y = 1 }; textView = new SqlTextView() { X = 0, Y = 0, Width = Dim.Fill(), Height = Dim.Fill(), Text = _orignalSql = collection.GetSql().Replace("\r\n", "\n").Replace("\t", " ") }; textView.AllowsTab = false; TabView.AddTab(queryTab = new Tab("Query", textView), true); tableView = new TableView() { X = 0, Y = 0, Width = Dim.Fill(), Height = Dim.Fill() }; tableView.Style.AlwaysShowHeaders = true; tableView.CellActivated += TableView_CellActivated; TabView.AddTab(resultTab = new Tab("Results", tableView), false); Add(TabView); // Buttons on top of control _btnRunOrCancel = new Button("Run") { X = 0, Y = 0, }; _btnRunOrCancel.Clicked += () => RunOrCancel(); Add(_btnRunOrCancel); var resetSql = new Button("Reset Sq_l") { X = Pos.Right(_btnRunOrCancel) + 1 }; resetSql.Clicked += () => ResetSql(); Add(resetSql); var clearSql = new Button("Clear S_ql") { X = Pos.Right(resetSql) + 1, }; clearSql.Clicked += () => ClearSql(); Add(clearSql); var lblTimeout = new Label("Timeout:") { X = Pos.Right(clearSql) + 1, }; Add(lblTimeout); var tbTimeout = new TextField(_timeout.ToString()) { X = Pos.Right(lblTimeout), Width = 5 }; tbTimeout.TextChanged += TbTimeout_TextChanged; Add(tbTimeout); var btnSave = new Button("Save") { X = Pos.Right(tbTimeout) + 1, }; btnSave.Clicked += () => Save(); Add(btnSave); var btnClose = new Button("Clos_e") { X = Pos.Right(btnSave) + 1, }; btnClose.Clicked += () => { Application.RequestStop(); }; Add(btnClose); var auto = new AutoCompleteProvider(collection.GetQuerySyntaxHelper()); collection.AdjustAutocomplete(auto); var bits = auto.Items.SelectMany(auto.GetBits).OrderBy(a => a).Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList(); textView.Autocomplete.AllSuggestions = bits; textView.Autocomplete.MaxWidth = 40; }