public void Update(LanguageServerSettings settings)
 {
     if (settings != null)
     {
         this.ScriptAnalysis.Update(settings.ScriptAnalysis);
     }
 }
 /// <summary>
 /// Event subscription method to be run when PSES configuration has been updated.
 /// </summary>
 /// <param name="sender">The sender of the configuration update event.</param>
 /// <param name="settings">The new language server settings.</param>
 public void OnConfigurationUpdated(object sender, LanguageServerSettings settings)
 {
     if (settings.ScriptAnalysis.Enable ?? true)
     {
         InitializeAnalysisEngineToCurrentSettings();
     }
 }
示例#3
0
        public Task didChangeConfiguration(JToken token, CancellationToken ct)
        {
            IdleTimeTracker.NotifyUserActivity();
            var settings = new LanguageServerSettings();

            var s = token["settings"];
            var r = s?["r"];

            if (r == null)
            {
                return(Task.CompletedTask);
            }

            settings.InterpreterIndex = GetSetting(r, "interpreter", -1);
            settings.InterpreterPath  = GetSetting(r, "interpreterPath", string.Empty);

            var editor = r["editor"];

            settings.Editor.TabSize                 = GetSetting(editor, "tabSize", 2);
            settings.Editor.FormatOnType            = GetSetting(editor, "formatOnType", true);
            settings.Editor.FormatScope             = GetSetting(editor, "formatScope", true);
            settings.Editor.SpaceAfterComma         = GetSetting(editor, "spaceAfterComma", true);
            settings.Editor.SpaceAfterKeyword       = GetSetting(editor, "spaceAfterKeyword", true);
            settings.Editor.SpacesAroundEquals      = GetSetting(editor, "spacesAroundEquals", true);
            settings.Editor.SpaceBeforeCurly        = GetSetting(editor, "spaceBeforeCurly", true);
            settings.Editor.BreakMultipleStatements = GetSetting(editor, "breakMultipleStatements", true);
            settings.Editor.BracesOnNewLine         = GetSetting(editor, "bracesOnNewLine", false);

            var linting = r["linting"];

            settings.Linting.Enabled                  = GetSetting(linting, "enable", false);
            settings.Linting.CamelCase                = GetSetting(linting, "camelCase", true);
            settings.Linting.SnakeCase                = GetSetting(linting, "snakeCase", false);
            settings.Linting.PascalCase               = GetSetting(linting, "pascalCase", false);
            settings.Linting.UpperCase                = GetSetting(linting, "upperCase", false);
            settings.Linting.MultipleDots             = GetSetting(linting, "multipleDots", true);
            settings.Linting.NameLength               = GetSetting(linting, "nameLength", true);
            settings.Linting.MaxNameLength            = GetSetting(linting, "maxNameLength", 32);
            settings.Linting.TrueFalseNames           = GetSetting(linting, "trueFalseNames", true);
            settings.Linting.AssignmentType           = GetSetting(linting, "assignmentType", true);
            settings.Linting.SpacesAroundComma        = GetSetting(linting, "spacesAroundComma", true);
            settings.Linting.SpacesAroundOperators    = GetSetting(linting, "spacesAroundOperators", true);
            settings.Linting.CloseCurlySeparateLine   = GetSetting(linting, "closeCurlySeparateLine", true);
            settings.Linting.SpaceBeforeOpenBrace     = GetSetting(linting, "spaceBeforeOpenBrace", true);
            settings.Linting.SpacesInsideParenthesis  = GetSetting(linting, "spacesInsideParenthesis", true);
            settings.Linting.NoSpaceAfterFunctionName = GetSetting(linting, "noSpaceAfterFunctionName", true);
            settings.Linting.OpenCurlyPosition        = GetSetting(linting, "openCurlyPosition", true);
            settings.Linting.NoTabs             = GetSetting(linting, "noTabs", true);
            settings.Linting.TrailingWhitespace = GetSetting(linting, "trailingWhitespace", true);
            settings.Linting.TrailingBlankLines = GetSetting(linting, "trailingBlankLines", true);
            settings.Linting.DoubleQuotes       = GetSetting(linting, "doubleQuotes", true);
            settings.Linting.LineLength         = GetSetting(linting, "lineLength", false);
            settings.Linting.MaxLineLength      = GetSetting(linting, "maxLineLength", 132);
            settings.Linting.Semicolons         = GetSetting(linting, "semicolons", true);
            settings.Linting.MultipleStatements = GetSetting(linting, "multipleStatements", true);

            return(MainThreadPriority.SendAsync(() => {
                _services.GetService <ISettingsManager>().UpdateSettings(settings);
            }, UI, ct));
        }
 public void Update(LanguageServerSettings settings)
 {
     if (settings != null)
     {
         this.ScriptAnalysis.Update(settings.ScriptAnalysis);
     }
 }
示例#5
0
 public void Update(LanguageServerSettings settings)
 {
     if (settings != null)
     {
         this.EnableProfileLoading = settings.EnableProfileLoading;
         this.ScriptAnalysis.Update(settings.ScriptAnalysis);
     }
 }
示例#6
0
        public Task DidChangeConfiguration(JToken token)
        {
            var settings = new LanguageServerSettings();

            var rootSection   = token["settings"];
            var pythonSection = rootSection?["python"];
            var autoComplete  = pythonSection?["autoComplete"];

            if (autoComplete != null)
            {
                var showAdvancedMembers = autoComplete["showAdvancedMembers"] as JValue;
                settings.SuppressAdvancedMembers = showAdvancedMembers == null ||
                                                   (showAdvancedMembers.Type == JTokenType.Boolean && !showAdvancedMembers.ToObject <bool>());
            }
            var p = new DidChangeConfigurationParams()
            {
                settings = settings
            };

            return(_server.DidChangeConfiguration(p));
        }
示例#7
0
        public async Task DidChangeConfiguration(JToken token)
        {
            var settings = new LanguageServerSettings();

            var rootSection   = token["settings"];
            var pythonSection = rootSection?["python"];

            if (pythonSection == null)
            {
                return;
            }

            var autoComplete = pythonSection["autoComplete"];

            settings.completion.showAdvancedMembers = GetSetting(autoComplete, "showAdvancedMembers", true);

            var analysis = pythonSection["analysis"];

            settings.analysis.openFilesOnly = GetSetting(analysis, "openFilesOnly", false);

            var errors      = GetSetting(analysis, "errors", Array.Empty <string>());
            var warnings    = GetSetting(analysis, "warnings", Array.Empty <string>());
            var information = GetSetting(analysis, "information", Array.Empty <string>());
            var disabled    = GetSetting(analysis, "disabled", Array.Empty <string>());

            settings.analysis.SetErrorSeverityOptions(errors, warnings, information, disabled);

            await _server.DidChangeConfiguration(new DidChangeConfigurationParams { settings = settings });

            if (!_filesLoaded)
            {
                await LoadDirectoryFiles();

                _filesLoaded = true;
            }
        }
示例#8
0
        public static Task SendDidChangeConfiguration(this Server server, ServerSettings.PythonCompletionOptions pythonCompletionOptions, int failAfter = 30000)
        {
            var currentSettings = server.Settings;
            var settings        = new LanguageServerSettings();

            settings.completion.showAdvancedMembers = pythonCompletionOptions.showAdvancedMembers;
            settings.completion.addBrackets         = pythonCompletionOptions.addBrackets;

            settings.analysis.openFilesOnly = currentSettings.analysis.openFilesOnly;
            if (currentSettings is LanguageServerSettings languageServerSettings)
            {
                settings.diagnosticPublishDelay     = languageServerSettings.diagnosticPublishDelay;
                settings.symbolsHierarchyDepthLimit = languageServerSettings.symbolsHierarchyDepthLimit;
            }

            var errors      = currentSettings.analysis.errors;
            var warnings    = currentSettings.analysis.warnings;
            var information = currentSettings.analysis.information;
            var disabled    = currentSettings.analysis.disabled;

            settings.analysis.SetErrorSeverityOptions(errors, warnings, information, disabled);

            return(server.SendDidChangeConfiguration(settings, failAfter));
        }
示例#9
0
 /// <summary>
 /// Event subscription method to be run when PSES configuration has been updated.
 /// </summary>
 /// <param name="sender">The sender of the configuration update event.</param>
 /// <param name="settings">The new language server settings.</param>
 public void OnConfigurationUpdated(object sender, LanguageServerSettings settings)
 {
     InitializeAnalysisEngineToCurrentSettings();
 }