Exemple #1
0
        public override async Task <InitializeResult> Initialize(InitializeParams @params)
        {
            _testEnvironment      = @params.initializationOptions.testEnvironment;
            _analyzerCreationTask = CreateAnalyzerAndNotify(@params);
            // Test environment needs predictable initialization.
            if ([email protected] || _testEnvironment)
            {
                await _analyzerCreationTask;
            }

            return(new InitializeResult {
                capabilities = new ServerCapabilities {
                    textDocumentSync = new TextDocumentSyncOptions {
                        openClose = true,
                        change = TextDocumentSyncKind.Incremental
                    },
                    completionProvider = new CompletionOptions {
                        triggerCharacters = new[] { "." }
                    },
                    hoverProvider = true,
                    signatureHelpProvider = new SignatureHelpOptions {
                        triggerCharacters = new[] { "(,)" }
                    },
                    // https://github.com/Microsoft/PTVS/issues/3803
                    // definitionProvider = true,
                    referencesProvider = true
                }
            });
        }
Exemple #2
0
        public override async Task <InitializeResult> Initialize(InitializeParams @params)
        {
            _testEnvironment      = @params.initializationOptions.testEnvironment;
            _analyzerCreationTask = DoInitializeAsync(@params);
            // Test environment needs predictable initialization.
            if ([email protected])
            {
                await _analyzerCreationTask;
            }

            return(new InitializeResult {
                capabilities = new ServerCapabilities {
                    textDocumentSync = new TextDocumentSyncOptions {
                        openClose = true,
                        change = TextDocumentSyncKind.Incremental
                    },
                    completionProvider = new CompletionOptions {
                        triggerCharacters = new[] { "." }
                    },
                    hoverProvider = true,
                    signatureHelpProvider = new SignatureHelpOptions {
                        triggerCharacters = new[] { "(,)" }
                    },
                    definitionProvider = true,
                    referencesProvider = true,
                    workspaceSymbolProvider = true,
                    documentSymbolProvider = true
                }
            });
        }
Exemple #3
0
        public override async Task <InitializeResult> Initialize(InitializeParams @params)
        {
            ThrowIfDisposed();
            await DoInitializeAsync(@params);

            return(new InitializeResult {
                capabilities = new ServerCapabilities {
                    textDocumentSync = new TextDocumentSyncOptions {
                        openClose = true,
                        change = TextDocumentSyncKind.Incremental
                    },
                    completionProvider = new CompletionOptions {
                        triggerCharacters = new[] { "." }
                    },
                    hoverProvider = true,
                    signatureHelpProvider = new SignatureHelpOptions {
                        triggerCharacters = new[] { "(,)" }
                    },
                    definitionProvider = true,
                    referencesProvider = true,
                    workspaceSymbolProvider = true,
                    documentSymbolProvider = true,
                    executeCommandProvider = new ExecuteCommandOptions {
                        commands = new[] {
                            completionItemCommand
                        }
                    }
                }
            });
        }
Exemple #4
0
        internal async Task <InitializeResult> Initialize(InitializeParams @params, CancellationToken cancellationToken)
        {
            ThrowIfDisposed();
            await DoInitializeAsync(@params, cancellationToken);

            return(GetInitializeResult());
        }
Exemple #5
0
        public async override Task <InitializeResult> Initialize(InitializeParams @params)
        {
            _analyzer = await CreateAnalyzer(@params.initializationOptions.interpreter);

            if (string.IsNullOrEmpty(_analyzer.InterpreterFactory?.Configuration?.InterpreterPath))
            {
                LogMessage(MessageType.Log, "Initializing for unknown interpreter");
            }
            else
            {
                LogMessage(MessageType.Log, $"Initializing for {_analyzer.InterpreterFactory.Configuration.InterpreterPath}");
            }

            _clientCaps = @params.capabilities;

            if (@params.rootUri != null)
            {
                _rootDir = @params.rootUri;
            }
            else if (!string.IsNullOrEmpty(@params.rootPath))
            {
                _rootDir = new Uri(PathUtils.NormalizePath(@params.rootPath));
            }

            SetSearchPaths(@params.initializationOptions.searchPaths);

            _traceLogging = _clientCaps?.python?.traceLogging ?? false;

            if (_rootDir != null && !(_clientCaps?.python?.manualFileLoad ?? false))
            {
                LogMessage(MessageType.Log, $"Loading files from {_rootDir}");
                _loadingFromDirectory = LoadFromDirectoryAsync(_rootDir);
            }

            return(new InitializeResult {
                capabilities = new ServerCapabilities {
                    completionProvider = new CompletionOptions {
                        resolveProvider = true
                    },
                    textDocumentSync = new TextDocumentSyncOptions {
                        openClose = true, change = TextDocumentSyncKind.Incremental
                    }
                }
            });
        }
Exemple #6
0
        private async Task DoInitializeAsync(InitializeParams @params)
        {
            _analyzer = await CreateAnalyzer(@params.initializationOptions.interpreter);

            _clientCaps = @params.capabilities;
            _settings.SetCompletionTimeout(_clientCaps?.python?.completionsTimeout);
            _traceLogging = _clientCaps?.python?.traceLogging ?? false;
            _analyzer.EnableDiagnostics = _clientCaps?.python?.liveLinting ?? false;

            _reloadModulesQueueItem = new ReloadModulesQueueItem(_analyzer);

            if (@params.initializationOptions.displayOptions != null)
            {
                DisplayOptions = @params.initializationOptions.displayOptions;
            }
            _displayTextBuilder = DocumentationBuilder.Create(DisplayOptions);

            if (string.IsNullOrEmpty(_analyzer.InterpreterFactory?.Configuration?.InterpreterPath))
            {
                LogMessage(MessageType.Log, "Initializing for generic interpreter");
            }
            else
            {
                LogMessage(MessageType.Log, $"Initializing for {_analyzer.InterpreterFactory.Configuration.InterpreterPath}");
            }

            if (@params.rootUri != null)
            {
                _rootDir = @params.rootUri.ToAbsolutePath();
            }
            else if (!string.IsNullOrEmpty(@params.rootPath))
            {
                _rootDir = PathUtils.NormalizePath(@params.rootPath);
            }

            SetSearchPaths(@params.initializationOptions.searchPaths);
            SetTypeStubSearchPaths(@params.initializationOptions.typeStubSearchPaths);

            if (_rootDir != null && !(_clientCaps?.python?.manualFileLoad ?? false))
            {
                LogMessage(MessageType.Log, $"Loading files from {_rootDir}");
                _loadingFromDirectory = LoadFromDirectoryAsync(_rootDir);
            }
        }
Exemple #7
0
        private async Task DoInitializeAsync(InitializeParams @params, CancellationToken token)
        {
            ThrowIfDisposed();
            Analyzer = await _queue.ExecuteInQueueAsync(ct => CreateAnalyzer(@params.initializationOptions.interpreter, token), AnalysisPriority.High);

            ThrowIfDisposed();
            _clientCaps      = @params.capabilities;
            _traceLogging    = @params.initializationOptions.traceLogging;
            _analysisUpdates = @params.initializationOptions.analysisUpdates;

            Analyzer.EnableDiagnostics = _clientCaps?.python?.liveLinting ?? false;
            _reloadModulesQueueItem    = new ReloadModulesQueueItem(Analyzer);

            if (@params.initializationOptions.displayOptions != null)
            {
                DisplayOptions = @params.initializationOptions.displayOptions;
            }
            _displayTextBuilder = DocumentationBuilder.Create(DisplayOptions);

            if (string.IsNullOrEmpty(Analyzer.InterpreterFactory?.Configuration?.InterpreterPath))
            {
                LogMessage(MessageType._General, "Initializing for generic interpreter");
            }
            else
            {
                LogMessage(MessageType._General, $"Initializing for {Analyzer.InterpreterFactory.Configuration.InterpreterPath}");
            }

            if (@params.rootUri != null)
            {
                _rootDir = @params.rootUri.ToAbsolutePath();
            }
            else if (!string.IsNullOrEmpty(@params.rootPath))
            {
                _rootDir = PathUtils.NormalizePath(@params.rootPath);
            }

            SetSearchPaths(@params.initializationOptions.searchPaths);
            SetTypeStubSearchPaths(@params.initializationOptions.typeStubSearchPaths);

            Analyzer.Interpreter.ModuleNamesChanged += Interpreter_ModuleNamesChanged;
        }
Exemple #8
0
 public abstract Task <InitializeResult> Initialize(InitializeParams @params);
Exemple #9
0
        private async Task CreateAnalyzerAndNotify(InitializeParams @params)
        {
            _analyzer = await CreateAnalyzer(@params.initializationOptions.interpreter);

            OnAnalyzerCreated(@params);
        }
Exemple #10
0
 public override Task <InitializeResult> Initialize(InitializeParams @params) => Initialize(@params, CancellationToken.None);