public LanguageSettingsPersister( [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, IGlobalOptionService optionService) : base(assertIsForeground: true) { _textManager = (IVsTextManager4)serviceProvider.GetService(typeof(SVsTextManager)); _optionService = optionService; // TODO: make this configurable _languageMap = BidirectionalMap <string, Tuple <Guid> > .Empty.Add(LanguageNames.CSharp, Tuple.Create(Guids.CSharpLanguageServiceId)) .Add(LanguageNames.VisualBasic, Tuple.Create(Guids.VisualBasicLanguageServiceId)) .Add("TypeScript", Tuple.Create(new Guid("4a0dddb5-7a95-4fbf-97cc-616d07737a77"))) .Add("F#", Tuple.Create(new Guid("BC6DD5A5-D4D6-4dab-A00D-A51242DBAF1B"))) .Add("Xaml", Tuple.Create(new Guid("CD53C9A1-6BC2-412B-BE36-CC715ED8DD41"))); foreach (var languageGuid in _languageMap.Values) { var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = languageGuid.Item1; // The function can potentially fail if that language service isn't installed if (ErrorHandler.Succeeded(_textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null))) { RefreshLanguageSettings(languagePreferences); } } _textManagerEvents2Sink = ComEventSink.Advise <IVsTextManagerEvents4>(_textManager, this); }
int IVsTextManagerEvents4.OnUserPreferencesChanged4( VIEWPREFERENCES3[] viewPrefs, LANGPREFERENCES3[] langPrefs, FONTCOLORPREFERENCES2[] colorPrefs) { this.AssertIsForeground(); if (langPrefs != null && langPrefs[0].guidLang == _languageSetting.guidLang) { _languageSetting = langPrefs[0]; // We need to go and refresh each option we know about, since the option service caches them. // TODO: should a serializer have an event to say the backing store changed? RefreshOption(FormattingOptions.UseTabs); RefreshOption(FormattingOptions.TabSize); RefreshOption(FormattingOptions.SmartIndent); RefreshOption(FormattingOptions.IndentationSize); RefreshOption(CompletionOptions.HideAdvancedMembers); RefreshOption(CompletionOptions.TriggerOnTyping); RefreshOption(SignatureHelpOptions.ShowSignatureHelp); RefreshOption(NavigationBarOptions.ShowNavigationBar); RefreshOption(BraceCompletionOptions.EnableBraceCompletion); } return(VSConstants.S_OK); }
protected async Task <int> GetXamlIndentAsync(IAsyncServiceProvider serviceProvider) { try { var xamlLanguageGuid = new Guid("CD53C9A1-6BC2-412B-BE36-CC715ED8DD41"); var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = xamlLanguageGuid; if (await serviceProvider.GetServiceAsync(typeof(SVsTextManager)) is IVsTextManager4 textManager) { textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null); return((int)languagePreferences[0].uIndentSize); } else { RapidXamlPackage.Logger?.RecordError("Failed to get IVsTextManager4 in BaseCommand.GetXamlIndentAsync"); } } catch (Exception exc) { this.Logger.RecordException(exc); } var indent = new Microsoft.VisualStudio.Text.Editor.IndentSize(); return(indent.Default); }
private static void getEditorPreferences(ITextView textView) { if (!_optionsValid) { var package = XSharp.Project.XSharpProjectPackage.Instance; var optionsPage = package.GetIntellisenseOptionsPage(); var textManager = package.GetTextManager(); // _alignDoCase = optionsPage.AlignDoCase; _alignMethod = optionsPage.AlignMethod; _keywordCase = optionsPage.KeywordCase; _identifierCase = optionsPage.IdentifierCase; _noGotoDefinition = optionsPage.DisableGotoDefinition; var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = GuidStrings.guidLanguageService; var result = textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null); if (result == VSConstants.S_OK) { _indentStyle = languagePreferences[0].IndentStyle; } _tabSize = textView.Options.GetTabSize(); _indentSize = textView.Options.GetIndentSize(); _optionsValid = true; } }
private LANGPREFERENCES3 GetLanguagePreferences(Guid langServiceGuid) { LANGPREFERENCES3[] langPrefs = new LANGPREFERENCES3[] { new LANGPREFERENCES3() }; langPrefs[0].guidLang = langServiceGuid; Marshal.ThrowExceptionForHR(TextManager.GetUserPreferences6(null, langPrefs, null)); return(langPrefs[0]); }
private void SetLineNumbersEnabled(LANGPREFERENCES3 langPrefs, bool enabled) { // Update the Line Numbers state langPrefs.fLineNumbers = (uint)(enabled ? 1 : 0); // Save the update to the langPrefs SetLangPrefererences(langPrefs); }
public LanguageSettingsPersister( [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, IGlobalOptionService optionService) : base(assertIsForeground: true) { _textManager = (IVsTextManager4)serviceProvider.GetService(typeof(SVsTextManager)); _optionService = optionService; // TODO: make this configurable _languageMap = BidirectionalMap<string, Tuple<Guid>>.Empty.Add(LanguageNames.CSharp, Tuple.Create(Guids.CSharpLanguageServiceId)) .Add(LanguageNames.VisualBasic, Tuple.Create(Guids.VisualBasicLanguageServiceId)) .Add("TypeScript", Tuple.Create(new Guid("4a0dddb5-7a95-4fbf-97cc-616d07737a77"))) .Add("F#", Tuple.Create(new Guid("BC6DD5A5-D4D6-4dab-A00D-A51242DBAF1B"))) .Add("Xaml", Tuple.Create(new Guid("CD53C9A1-6BC2-412B-BE36-CC715ED8DD41"))); foreach (var languageGuid in _languageMap.Values) { var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = languageGuid.Item1; // The function can potentially fail if that language service isn't installed if (ErrorHandler.Succeeded(_textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null))) { RefreshLanguageSettings(languagePreferences); } } _textManagerEvents2Sink = ComEventSink.Advise<IVsTextManagerEvents4>(_textManager, this); }
private void HideAllEditorMargins(VIEWPREFERENCES5 viewPrefs, LANGPREFERENCES3 langPrefs) { // Mark all editor margins as hidden viewPrefs.fWidgetMargin = 0; langPrefs.fLineNumbers = 0; viewPrefs.fSelectionMargin = 0; SaveAllUserPreferences(viewPrefs, langPrefs); }
public void ExecToggleLineNumbers(Guid langServiceGuid) { // Get the language preferences LANGPREFERENCES3 langPrefs = GetLanguagePreferences(langServiceGuid); bool enabled = IsLineNumbersEnabled(langPrefs); SetLineNumbersEnabled(langPrefs, !enabled); }
private void GetAllUserPreferences(Guid langServiceGuid, out VIEWPREFERENCES5 viewPrefs, out LANGPREFERENCES3 langPrefs) { LANGPREFERENCES3[] langPrefsArr = new LANGPREFERENCES3[] { new LANGPREFERENCES3() }; VIEWPREFERENCES5[] viewPrefsArr = new VIEWPREFERENCES5[] { new VIEWPREFERENCES5() }; langPrefsArr[0].guidLang = langServiceGuid; Marshal.ThrowExceptionForHR(TextManager.GetUserPreferences6(viewPrefsArr, langPrefsArr, null)); langPrefs = langPrefsArr[0]; viewPrefs = viewPrefsArr[0]; }
public void ExecToggleNavigationBar(IWpfTextView textView, Guid langServiceGuid) { // Get the language preferences LANGPREFERENCES3 langPrefs = GetLanguagePreferences(langServiceGuid); bool enabled = IsNavBarEnabled(langPrefs); // Update the state (toggle) langPrefs.fDropdownBar = (uint)(enabled ? 0 : 1); // Save the update to the langPrefs SetLangPrefererences(langPrefs); }
int IVsTextManagerEvents4.OnUserPreferencesChanged4( VIEWPREFERENCES3[] viewPrefs, LANGPREFERENCES3[] langPrefs, FONTCOLORPREFERENCES2[] colorPrefs) { if (langPrefs != null) { RefreshLanguageSettings(langPrefs); } return VSConstants.S_OK; }
private void SaveCurrentViewAndLangPrefs(VIEWPREFERENCES5 viewPrefs, LANGPREFERENCES3 langPrefs) { // Create a Map of settings to restore to Dictionary <string, object> restoreSettings = new Dictionary <string, object> { // Save the viewPrefs and langPrefs ["ViewPrefs"] = viewPrefs, // Holds Breakpoint, SelectionMargin ["LangPrefs"] = langPrefs // Holds LineNumbers }; // Save the RestoreActions to the global map against the given language type RestoreSettingsMap[languageServiceGuid] = restoreSettings; }
private void LoadLanguagePreferences() { var langPrefs = new LANGPREFERENCES3[1]; langPrefs[0].guidLang = _languageServiceId; var hr = _textManager.GetUserPreferences4(null, langPrefs, null); if (hr == VSConstants.S_OK) { _langPrefs = langPrefs[0]; } Debug.Assert(_langPrefs != null); }
public int OnUserPreferencesChanged4(VIEWPREFERENCES3[] pViewPrefs, LANGPREFERENCES3[] pLangPrefs, FONTCOLORPREFERENCES2[] pColorPrefs) { IVsTextManager4 textMgr = (IVsTextManager4)NodejsPackage.Instance.GetService(typeof(SVsTextManager)); if (pLangPrefs != null && pLangPrefs.Length > 0 && pLangPrefs[0].guidLang == _preferences.guidLang) { _preferences.IndentStyle = pLangPrefs[0].IndentStyle; _preferences.fAutoListMembers = pLangPrefs[0].fAutoListMembers; _preferences.fAutoListParams = pLangPrefs[0].fAutoListParams; _preferences.fHideAdvancedAutoListMembers = pLangPrefs[0].fHideAdvancedAutoListMembers; // Synchronize settings back to TS language service pLangPrefs[0].guidLang = Guids.TypeScriptLanguageInfo; textMgr.SetUserPreferences4(null, pLangPrefs, null); } return VSConstants.S_OK; }
private void getOptions() { _alignDoCase = _optionsPage.AlignDoCase; _alignMethod = _optionsPage.AlignMethod; var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = GuidStrings.guidLanguageService; var result = _textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null); if (result == VSConstants.S_OK) { _indentStyle = languagePreferences[0].IndentStyle; _tabSize = (int)languagePreferences[0].uTabSize; } }
private void SetUserPreferences() { var langPrefs = new LANGPREFERENCES3[1]; langPrefs[0] = _languageSetting; if (IsForeground()) { Marshal.ThrowExceptionForHR(_textManager.SetUserPreferences4(pViewPrefs: null, pLangPrefs: langPrefs, pColorPrefs: null)); } else { Task.Factory.StartNew(this.SetUserPreferences, CancellationToken.None, TaskCreationOptions.None, ForegroundThreadAffinitizedObject.CurrentForegroundThreadData.TaskScheduler); } }
// We make sure this code is from the UI by asking for the optionservice in the initialize() in AbstractPackage`2 public AbstractLanguageSettingsSerializer(Guid languageServiceguid, string languageName, IServiceProvider serviceProvider) : base(assertIsForeground: true) { _serviceProvider = serviceProvider; _languageName = languageName; _textManager = (IVsTextManager4)serviceProvider.GetService(typeof(SVsTextManager)); var langPrefs = new LANGPREFERENCES3[1]; langPrefs[0].guidLang = languageServiceguid; Marshal.ThrowExceptionForHR(_textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: langPrefs, pColorPrefs: null)); _languageSetting = langPrefs[0]; _textManagerEvents2Sink = ComEventSink.Advise <IVsTextManagerEvents4>(_textManager, this); }
private void SetUserPreferences() { var langPrefs = new LANGPREFERENCES3[1]; langPrefs[0] = _languageSetting; if (IsForeground()) { Marshal.ThrowExceptionForHR(_textManager.SetUserPreferences4(pViewPrefs: null, pLangPrefs: langPrefs, pColorPrefs: null)); } else { TaskFactory factory = new TaskFactory(ForegroundThreadAffinitizedObject.ForegroundTaskScheduler); factory.StartNew(this.SetUserPreferences); } }
private void SetInteger(string name, int value) { LANGPREFERENCES3 langPrefs = LangPrefs; switch (name) { case EditorSettings.IndentStyleKey: if (langPrefs.IndentStyle != (vsIndentStyle)value) { langPrefs.IndentStyle = (vsIndentStyle)value; SetLangPrefs(langPrefs); } break; case EditorSettings.FormatterIndentSizeKey: if (langPrefs.uIndentSize != (uint)value) { langPrefs.uIndentSize = (uint)value; SetLangPrefs(langPrefs); } break; case EditorSettings.FormatterIndentTypeKey: if (langPrefs.fInsertTabs != (uint)value) { langPrefs.fInsertTabs = (uint)value; SetLangPrefs(langPrefs); } break; case EditorSettings.FormatterTabSizeKey: if (langPrefs.uTabSize != (uint)value) { langPrefs.uTabSize = (uint)value; SetLangPrefs(langPrefs); } break; default: if (!_integerSettings.ContainsKey(name) || value != _integerSettings[name]) { _integerSettings[name] = value; SettingsChanged?.Invoke(this, EventArgs.Empty); } break; } }
private bool AllMarginsAreHidden(VIEWPREFERENCES5 viewPrefs, LANGPREFERENCES3 langPrefs) { // Check for BreakPoint, LineNumbers, SelectionMargin, TrackChanges if (IsIndicatorMarginEnabled(viewPrefs)) { return(false); } if (IsLineNumbersEnabled(langPrefs)) { return(false); } if (IsSelectionMarginEnabled(viewPrefs)) { return(false); } return(true); }
private void RestoreMargins() { // Get old user settings RestoreSettingsMap.TryGetValue(languageServiceGuid, out Dictionary <string, object> restoreSettings); if (restoreSettings == null) { return; // No previous settings found. Exit out. } VIEWPREFERENCES5 oldViewPrefs = (VIEWPREFERENCES5)restoreSettings["ViewPrefs"]; LANGPREFERENCES3 oldLangPrefs = (LANGPREFERENCES3)restoreSettings["LangPrefs"]; // Fetch the latest settings GetAllUserPreferences(languageServiceGuid, out VIEWPREFERENCES5 viewPrefs, out LANGPREFERENCES3 langPrefs); // Update all the margins to be the same as the restore settings viewPrefs.fWidgetMargin = oldViewPrefs.fWidgetMargin; viewPrefs.fSelectionMargin = oldViewPrefs.fSelectionMargin; langPrefs.fLineNumbers = oldLangPrefs.fLineNumbers; // Save the new settings SaveAllUserPreferences(viewPrefs, langPrefs); }
public async Task <int> GetXamlIndentAsync() { try { var xamlLanguageGuid = new Guid("CD53C9A1-6BC2-412B-BE36-CC715ED8DD41"); var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = xamlLanguageGuid; if (!(await this.serviceProvider.GetServiceAsync(typeof(SVsTextManager)) is IVsTextManager4 textManager)) { SharedRapidXamlPackage.Logger?.RecordGeneralError(StringRes.Error_FailedToGetIVsTextManager4InVisualStudioAbstraction_GetXamlIndentAsync); } else { textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null); return((int)languagePreferences[0].uIndentSize); } }
public LanguageSettingsPersister( IThreadingContext threadingContext, IVsTextManager4 textManager, IGlobalOptionService globalOptions) : base(threadingContext, assertIsForeground: true) { _textManager = textManager; _globalOptions = globalOptions; var languageMap = BidirectionalMap <string, Tuple <Guid> > .Empty; InitializeSettingsForLanguage(LanguageNames.CSharp, Guids.CSharpLanguageServiceId); InitializeSettingsForLanguage(LanguageNames.VisualBasic, Guids.VisualBasicLanguageServiceId); InitializeSettingsForLanguage(InternalLanguageNames.TypeScript, new Guid("4a0dddb5-7a95-4fbf-97cc-616d07737a77")); InitializeSettingsForLanguage("F#", new Guid("BC6DD5A5-D4D6-4dab-A00D-A51242DBAF1B")); InitializeSettingsForLanguage("Xaml", new Guid("CD53C9A1-6BC2-412B-BE36-CC715ED8DD41")); void InitializeSettingsForLanguage(string languageName, Guid languageGuid) { var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = languageGuid; // The function can potentially fail if that language service isn't installed if (ErrorHandler.Succeeded(_textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null))) { RefreshLanguageSettings(languagePreferences, languageName); languageMap = languageMap.Add(languageName, Tuple.Create(languageGuid)); } else { FatalError.ReportWithDumpAndCatch(new InvalidOperationException("GetUserPreferences4 failed"), ErrorSeverity.Diagnostic); } } _languageMap = languageMap; _textManagerEvents2Sink = ComEventSink.Advise <IVsTextManagerEvents4>(_textManager, this); }
public LanguageSettingsPersister( [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, IGlobalOptionService optionService) : base(assertIsForeground: true) { _textManager = (IVsTextManager4)serviceProvider.GetService(typeof(SVsTextManager)); _optionService = optionService; // TODO: make this configurable _languageMap = BidirectionalMap<string, Guid>.Empty.Add(LanguageNames.CSharp, Guids.CSharpLanguageServiceId) .Add(LanguageNames.VisualBasic, Guids.VisualBasicLanguageServiceId) .Add("TypeScript", new Guid("4a0dddb5-7a95-4fbf-97cc-616d07737a77")); foreach (var languageGuid in _languageMap.Values) { var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = languageGuid; Marshal.ThrowExceptionForHR(_textManager.GetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null)); RefreshLanguageSettings(languagePreferences); } _textManagerEvents2Sink = ComEventSink.Advise<IVsTextManagerEvents4>(_textManager, this); }
public int OnUserPreferencesChanged4( VIEWPREFERENCES3[] viewPrefs, LANGPREFERENCES3[] langPrefs, FONTCOLORPREFERENCES2[] colorPrefs) { if (langPrefs != null && langPrefs[0].guidLang == _languageServiceId) { _langPrefs = langPrefs[0]; FireSettingsChanged(); } return VSConstants.S_OK; }
private void SetUserPreferencesMaybeAsync(LANGPREFERENCES3[] languagePreferences) { if (IsForeground()) { Marshal.ThrowExceptionForHR(_textManager.SetUserPreferences4(pViewPrefs: null, pLangPrefs: languagePreferences, pColorPrefs: null)); } else { Task.Factory.StartNew(() => this.SetUserPreferencesMaybeAsync(languagePreferences), CancellationToken.None, TaskCreationOptions.None, ForegroundThreadAffinitizedObject.CurrentForegroundThreadData.TaskScheduler); } }
public bool TryPersist(OptionKey optionKey, object value) { if (!_supportedOptions.Contains(optionKey.Option)) { value = null; return false; } if (!_languageMap.TryGetValue(optionKey.Language, out var languageServiceGuid)) { value = null; return false; } var languagePreferences = new LANGPREFERENCES3[1]; languagePreferences[0].guidLang = languageServiceGuid.Item1; Marshal.ThrowExceptionForHR(_textManager.GetUserPreferences4(null, languagePreferences, null)); SetValueForOption(optionKey.Option, ref languagePreferences[0], value); SetUserPreferencesMaybeAsync(languagePreferences); // Even if we didn't call back, say we completed the persist return true; }
private static void SetValueForOption(IOption option, ref LANGPREFERENCES3 languagePreference, object value) { if (option == FormattingOptions.UseTabs) { languagePreference.fInsertTabs = Convert.ToUInt32((bool)value ? 1 : 0); } else if (option == FormattingOptions.TabSize) { languagePreference.uTabSize = Convert.ToUInt32(value); } else if (option == FormattingOptions.IndentationSize) { languagePreference.uIndentSize = Convert.ToUInt32(value); } else if (option == FormattingOptions.SmartIndent) { switch ((FormattingOptions.IndentStyle)value) { case FormattingOptions.IndentStyle.None: languagePreference.IndentStyle = vsIndentStyle.vsIndentStyleNone; break; case FormattingOptions.IndentStyle.Block: languagePreference.IndentStyle = vsIndentStyle.vsIndentStyleDefault; break; default: languagePreference.IndentStyle = vsIndentStyle.vsIndentStyleSmart; break; } } else if (option == CompletionOptions.HideAdvancedMembers) { languagePreference.fHideAdvancedAutoListMembers = Convert.ToUInt32((bool)value ? 1 : 0); } else if (option == CompletionOptions.TriggerOnTyping) { languagePreference.fAutoListMembers = Convert.ToUInt32((bool)value ? 1 : 0); } else if (option == SignatureHelpOptions.ShowSignatureHelp) { languagePreference.fAutoListParams = Convert.ToUInt32((bool)value ? 1 : 0); } else if (option == NavigationBarOptions.ShowNavigationBar) { languagePreference.fDropdownBar = Convert.ToUInt32((bool)value ? 1 : 0); } else if (option == BraceCompletionOptions.EnableBraceCompletion) { languagePreference.fBraceCompletion = Convert.ToUInt32((bool)value ? 1 : 0); } else { throw new ArgumentException("Unexpected option.", nameof(option)); } }
private static object GetValueForOption(IOption option, LANGPREFERENCES3 languagePreference) { if (option == FormattingOptions.UseTabs) { return languagePreference.fInsertTabs != 0; } else if (option == FormattingOptions.TabSize) { return Convert.ToInt32(languagePreference.uTabSize); } else if (option == FormattingOptions.IndentationSize) { return Convert.ToInt32(languagePreference.uIndentSize); } else if (option == FormattingOptions.SmartIndent) { switch (languagePreference.IndentStyle) { case vsIndentStyle.vsIndentStyleNone: return FormattingOptions.IndentStyle.None; case vsIndentStyle.vsIndentStyleDefault: return FormattingOptions.IndentStyle.Block; default: return FormattingOptions.IndentStyle.Smart; } } else if (option == CompletionOptions.HideAdvancedMembers) { return languagePreference.fHideAdvancedAutoListMembers != 0; } else if (option == CompletionOptions.TriggerOnTyping) { return languagePreference.fAutoListMembers != 0; } else if (option == SignatureHelpOptions.ShowSignatureHelp) { return languagePreference.fAutoListParams != 0; } else if (option == NavigationBarOptions.ShowNavigationBar) { return languagePreference.fDropdownBar != 0; } else if (option == BraceCompletionOptions.EnableBraceCompletion) { return languagePreference.fBraceCompletion != 0; } else { throw new ArgumentException("Unexpected option.", nameof(option)); } }
private void RefreshLanguageSettings(LANGPREFERENCES3[] langPrefs) { this.AssertIsForeground(); if (_languageMap.TryGetKey(Tuple.Create(langPrefs[0].guidLang), out var languageName)) { foreach (var option in _supportedOptions) { var keyWithLanguage = new OptionKey(option, languageName); object newValue = GetValueForOption(option, langPrefs[0]); _optionService.RefreshOption(keyWithLanguage, newValue); } } }
public LanguagePreferences(LANGPREFERENCES3 preferences) { _preferences = preferences; }
public static LANGPREFERENCES3[] GetNodejsLanguagePreferencesFromTypeScript(IVsTextManager4 textMgr) { var langPrefs = new LANGPREFERENCES3[1]; langPrefs[0].guidLang = Guids.TypeScriptLanguageInfo; ErrorHandler.ThrowOnFailure(textMgr.GetUserPreferences4(null, langPrefs, null)); langPrefs[0].guidLang = typeof(NodejsLanguageInfo).GUID; textMgr.SetUserPreferences4(null, langPrefs, null); return langPrefs; }
public int SetUserPreferences4(VIEWPREFERENCES3[] pViewPrefs, LANGPREFERENCES3[] pLangPrefs, FONTCOLORPREFERENCES2[] pColorPrefs) { return VSConstants.S_OK; }
public static LANGPREFERENCES3[] GetNodejsLanguagePreferencesFromTypeScript(IVsTextManager4 textMgr) { var langPrefs = new LANGPREFERENCES3[1]; langPrefs[0].guidLang = Guids.TypeScriptLanguageInfo; int hr = textMgr.GetUserPreferences4(null, langPrefs, null); if (ErrorHandler.Failed(hr)) { MessageBox.Show(Project.SR.GetString(Project.SR.CouldNotGetTypeScriptLanguagePreferences), Project.SR.ProductName); ErrorHandler.ThrowOnFailure(hr); } langPrefs[0].guidLang = typeof(NodejsLanguageInfo).GUID; textMgr.SetUserPreferences4(null, langPrefs, null); return langPrefs; }
private void SetLangPrefs(LANGPREFERENCES3 newPreferences) { IVsTextManager4 textManager = VsAppShell.Current.GetGlobalService<IVsTextManager4>(typeof(SVsTextManager)); Debug.Assert(textManager != null); if (textManager != null) { // Set the language preferences, like "is intellisense turned on?" LANGPREFERENCES3[] langPrefs = { newPreferences }; textManager.SetUserPreferences4(null, langPrefs, null); } }