未验证 提交 646489a3 编写于 作者: J Joey Robichaud 提交者: GitHub

Replace Enhanced Colors with Color Schemes (#39792)

* Build color schemes into pkgdef resources

* Add files to read items from PKGDEF files

* Apply ColorScheme PKGDEF as defaults colors

* Add ColorScheme dropdown to Advanced Options page

* Update formatting for contributed PkgDef files

* Add margin to custom theme warning

* Address ColorApplier feedback

* Updated based on PR feedback

* Change to a VsixColorCompiler package that includes VC runtime

* Remove VsixColorCompiler

* Move native methods

* Remove PKGDEF reading

* Add additional color options to ColorSchemeOptions

* Add color scheme reader for reading the scheme XML

* Add coverter for turning color schemed into registry entries

* Update applier to read schemes from xml

* Initialize applier on package load

* Update option pages to refresh onLoad

* Remove VsixColorCompiler PackageReference

* Implement feedback from Code Review

* More feedback from Code Review

* Update file headers

* WIP

* Resolve PR feedback

* Use SchemeName in place of name strings

* Fix options persistence

* Make OptionChanged event nullable

* Revert change to GlobalOptionService

* Revert to using VisualStudioWorkspace for accessingOptions
上级 67549d9d
......@@ -259,7 +259,7 @@ private class UserTypeModulesFormatDefinition : ClassificationFormatDefinition
public UserTypeModulesFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.User_Types_Modules;
this.ForegroundColor = Color.FromRgb(43, 145, 175);
this.ForegroundColor = Color.FromRgb(0x2B, 0x91, 0xAF);
}
}
#endregion
......@@ -683,14 +683,14 @@ public XmlDocCommentTextFormatDefinition()
private static readonly Color s_regexGroupingAndAlternationColor = Color.FromRgb(0x05, 0xc3, 0xba);
private static readonly Color s_characterClassColor = Color.FromRgb(0x00, 0x8a, 0xff);
private static readonly Color s_regexAnchorAndQuantifierColor = Color.FromRgb(0xd7, 0x45, 0x8c);
private static readonly Color s_regexCommentColor = Color.FromRgb(87, 166, 74);
private static readonly Color s_regexCommentColor = Color.FromRgb(0x61, 0xa6, 0x4a);
#else
private static readonly Color s_regexTextColor = Color.FromRgb(0x80, 0x00, 0x00);
private static readonly Color s_regexOtherEscapeColor = Color.FromRgb(0x9e, 0x5b, 0x71);
private static readonly Color s_regexGroupingAndAlternationColor = Color.FromRgb(0x05, 0xc3, 0xba);
private static readonly Color s_characterClassColor = Color.FromRgb(0x00, 0x73, 0xff);
private static readonly Color s_regexAnchorAndQuantifierColor = Color.FromRgb(0xff, 0x00, 0xc1);
private static readonly Color s_regexCommentColor = Color.FromRgb(0, 128, 0);
private static readonly Color s_regexCommentColor = Color.FromRgb(0x00, 0x80, 0x00);
#endif
[Export(typeof(EditorFormatDefinition))]
......@@ -863,7 +863,7 @@ private class XmlLiteralAttributeNameFormatDefinition : ClassificationFormatDefi
public XmlLiteralAttributeNameFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Attribute_Name;
this.ForegroundColor = Color.FromRgb(185, 100, 100); // HC_LIGHTRED
this.ForegroundColor = Color.FromRgb(0xB9, 0x64, 0x64); // HC_LIGHTRED
}
}
#endregion
......@@ -879,7 +879,7 @@ private class XmlLiteralAttributeQuotesFormatDefinition : ClassificationFormatDe
public XmlLiteralAttributeQuotesFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Attribute_Quotes;
this.ForegroundColor = Color.FromRgb(85, 85, 85); // HC_LIGHTBLACK
this.ForegroundColor = Color.FromRgb(0x55, 0x55, 0x55); // HC_LIGHTBLACK
}
}
#endregion
......@@ -895,7 +895,7 @@ private class XmlLiteralAttributeValueFormatDefinition : ClassificationFormatDef
public XmlLiteralAttributeValueFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Attribute_Value;
this.ForegroundColor = Color.FromRgb(100, 100, 185); // HC_LIGHTBLUE
this.ForegroundColor = Color.FromRgb(0x64, 0x64, 0xB9); // HC_LIGHTBLUE
}
}
#endregion
......@@ -911,7 +911,7 @@ private class XmlLiteralCDataSectionFormatDefinition : ClassificationFormatDefin
public XmlLiteralCDataSectionFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_CData_Section;
this.ForegroundColor = Color.FromRgb(192, 192, 192); // HC_LIGHTGRAY
this.ForegroundColor = Color.FromRgb(0xC0, 0xC0, 0xC0); // HC_LIGHTGRAY
}
}
#endregion
......@@ -927,7 +927,7 @@ private class XmlLiteralCommentFormatDefinition : ClassificationFormatDefinition
public XmlLiteralCommentFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Comment;
this.ForegroundColor = Color.FromRgb(98, 151, 85); // HC_LIGHTGREEN
this.ForegroundColor = Color.FromRgb(0x62, 0x97, 0x55); // HC_LIGHTGREEN
}
}
#endregion
......@@ -943,7 +943,7 @@ private class XmlLiteralDelimiterFormatDefinition : ClassificationFormatDefiniti
public XmlLiteralDelimiterFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Delimiter;
this.ForegroundColor = Color.FromRgb(100, 100, 185); // HC_LIGHTBLUE
this.ForegroundColor = Color.FromRgb(0x64, 0x64, 0xB9); // HC_LIGHTBLUE
}
}
#endregion
......@@ -959,8 +959,8 @@ private class XmlLiteralEmbeddedExpressionFormatDefinition : ClassificationForma
public XmlLiteralEmbeddedExpressionFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Embedded_Expression;
this.ForegroundColor = Color.FromRgb(85, 85, 85); // HC_LIGHTBLACK
this.BackgroundColor = Color.FromRgb(255, 254, 191); // HC_LIGHTYELLOW
this.ForegroundColor = Color.FromRgb(0x55, 0x55, 0x55); // HC_LIGHTBLACK
this.BackgroundColor = Color.FromRgb(0xFF, 0xFE, 0xBF); // HC_LIGHTYELLOW
}
}
#endregion
......@@ -976,7 +976,7 @@ private class XmlLiteralEntityReferenceFormatDefinition : ClassificationFormatDe
public XmlLiteralEntityReferenceFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Entity_Reference;
this.ForegroundColor = Color.FromRgb(185, 100, 100); // HC_LIGHTRED
this.ForegroundColor = Color.FromRgb(0xB9, 0x64, 0x64); // HC_LIGHTRED
}
}
#endregion
......@@ -992,7 +992,7 @@ private class XmlLiteralNameFormatDefinition : ClassificationFormatDefinition
public XmlLiteralNameFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Name;
this.ForegroundColor = Color.FromRgb(132, 70, 70); // HC_LIGHTMAROON
this.ForegroundColor = Color.FromRgb(0x84, 0x46, 0x46); // HC_LIGHTMAROON
}
}
#endregion
......@@ -1008,7 +1008,7 @@ private class XmlLiteralProcessingInstructionFormatDefinition : ClassificationFo
public XmlLiteralProcessingInstructionFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Processing_Instruction;
this.ForegroundColor = Color.FromRgb(192, 192, 192); // HC_LIGHTGRAY
this.ForegroundColor = Color.FromRgb(0xC0, 0xC0, 0xC0); // HC_LIGHTGRAY
}
}
#endregion
......@@ -1024,7 +1024,7 @@ private class XmlLiteralTextFormatDefinition : ClassificationFormatDefinition
public XmlLiteralTextFormatDefinition()
{
this.DisplayName = EditorFeaturesResources.VB_XML_Literals_Text;
this.ForegroundColor = Color.FromRgb(85, 85, 85); // HC_LIGHTBLACK
this.ForegroundColor = Color.FromRgb(0x55, 0x55, 0x55); // HC_LIGHTBLACK
}
}
#endregion
......
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Runtime.InteropServices;
namespace Microsoft.CodeAnalysis.Editor.Wpf.Utilities
{
internal static class NativeMethods
{
public static readonly IntPtr HWND_BROADCAST = new IntPtr(0xFFFF);
public const int WM_SYSCOLORCHANGE = 0x0015;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace Microsoft.CodeAnalysis.Editor.ColorSchemes
{
internal enum SchemeName
{
None,
VisualStudio2017,
Enhanced
}
}
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Immutable;
using System.Composition;
using Microsoft.CodeAnalysis.Editor.ColorSchemes;
using Microsoft.CodeAnalysis.Options;
using Microsoft.CodeAnalysis.Options.Providers;
namespace Microsoft.CodeAnalysis.Editor.Options
{
internal static class ColorSchemeOptions
{
internal const string ColorSchemeSettingKey = "TextEditor.Roslyn.ColorScheme";
public static readonly Option<SchemeName> ColorScheme = new Option<SchemeName>(nameof(ColorSchemeOptions),
nameof(ColorScheme),
defaultValue: SchemeName.Enhanced,
storageLocations: new RoamingProfileStorageLocation(ColorSchemeSettingKey));
// The applied color scheme is a local setting because it is the scheme that is applied to
// the users current registry hive.
public static readonly Option<SchemeName> AppliedColorScheme = new Option<SchemeName>(nameof(ColorSchemeOptions),
nameof(AppliedColorScheme),
defaultValue: SchemeName.None,
storageLocations: new LocalUserProfileStorageLocation(@"Roslyn\ColorSchemeApplier\AppliedColorScheme"));
public static readonly Option<UseEnhancedColors> LegacyUseEnhancedColors = new Option<UseEnhancedColors>(nameof(ColorSchemeOptions),
nameof(LegacyUseEnhancedColors),
defaultValue: UseEnhancedColors.Default,
storageLocations: new RoamingProfileStorageLocation("WindowManagement.Options.UseEnhancedColorsForManagedLanguages"));
public enum UseEnhancedColors
{
Migrated = -2,
DoNotUse = -1,
Default = 0,
Use = 1
}
}
[ExportOptionProvider, Shared]
internal class ColorSchemeOptionsProvider : IOptionProvider
{
[ImportingConstructor]
public ColorSchemeOptionsProvider()
{
}
public ImmutableArray<IOption> Options => ImmutableArray.Create<IOption>(
ColorSchemeOptions.ColorScheme,
ColorSchemeOptions.AppliedColorScheme,
ColorSchemeOptions.LegacyUseEnhancedColors);
}
}
......@@ -4,6 +4,7 @@
using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.ComponentModelHost;
using Microsoft.VisualStudio.LanguageServices.Implementation.Options;
namespace Microsoft.VisualStudio.LanguageServices.CSharp.Options
......@@ -13,7 +14,8 @@ internal class AdvancedOptionPage : AbstractOptionPage
{
protected override AbstractOptionPageControl CreateOptionPage(IServiceProvider serviceProvider, OptionStore optionStore)
{
return new AdvancedOptionPageControl(optionStore);
var componentModel = (IComponentModel)this.Site.GetService(typeof(SComponentModel));
return new AdvancedOptionPageControl(optionStore, componentModel);
}
}
}
......@@ -125,10 +125,20 @@
</GroupBox>
<GroupBox x:Uid="ClassificationsGroupBox"
Header="{x:Static local:AdvancedOptionPageStrings.Option_Classifications}">
Header="{x:Static local:AdvancedOptionPageStrings.Option_Editor_Color_Scheme}">
<StackPanel>
<CheckBox x:Name="Use_enhanced_colors"
Content="{x:Static local:AdvancedOptionPageStrings.Option_Use_enhanced_colors_for_C_and_Basic}" />
<ComboBox x:Name="Editor_color_scheme" IsEditable="false">
<ComboBoxItem Content="{x:Static local:AdvancedOptionPageStrings.Option_Color_Scheme_Enhanced}" Tag="{x:Static local:AdvancedOptionPageStrings.Color_Scheme_Enhanced_Tag}" />
<ComboBoxItem Content="{x:Static local:AdvancedOptionPageStrings.Option_Color_Scheme_VisualStudio2017}" Tag="{x:Static local:AdvancedOptionPageStrings.Color_Scheme_VisualStudio2017_Tag}" />
</ComboBox>
<TextBlock x:Name="Customized_Theme_Warning"
TextWrapping="WrapWithOverflow"
Margin="0, 0, 0, 8"
Text="{x:Static local:AdvancedOptionPageStrings.Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations}"/>
<TextBlock x:Name="Custom_VS_Theme_Warning"
TextWrapping="WrapWithOverflow"
Margin="0, 0, 0, 8"
Text="{x:Static local:AdvancedOptionPageStrings.Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page}"/>
</StackPanel>
</GroupBox>
......
......@@ -2,9 +2,12 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Windows;
using System.Windows.Media;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Editing;
using Microsoft.CodeAnalysis.Editor.CSharp.SplitStringLiteral;
using Microsoft.CodeAnalysis.Editor.Options;
using Microsoft.CodeAnalysis.Editor.Shared.Options;
using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions;
using Microsoft.CodeAnalysis.ExtractMethod;
......@@ -15,14 +18,20 @@
using Microsoft.CodeAnalysis.Structure;
using Microsoft.CodeAnalysis.SymbolSearch;
using Microsoft.CodeAnalysis.ValidateFormatString;
using Microsoft.VisualStudio.ComponentModelHost;
using Microsoft.VisualStudio.LanguageServices.ColorSchemes;
using Microsoft.VisualStudio.LanguageServices.Implementation.Options;
namespace Microsoft.VisualStudio.LanguageServices.CSharp.Options
{
internal partial class AdvancedOptionPageControl : AbstractOptionPageControl
{
public AdvancedOptionPageControl(OptionStore optionStore) : base(optionStore)
private ColorSchemeApplier _colorSchemeApplier;
public AdvancedOptionPageControl(OptionStore optionStore, IComponentModel componentModel) : base(optionStore)
{
_colorSchemeApplier = componentModel.GetService<ColorSchemeApplier>();
InitializeComponent();
BindToOption(Background_analysis_scope_active_file, SolutionCrawlerOptions.BackgroundAnalysisScopeOption, BackgroundAnalysisScope.ActiveFile, LanguageNames.CSharp);
......@@ -72,7 +81,21 @@ public AdvancedOptionPageControl(OptionStore optionStore) : base(optionStore)
BindToOption(Highlight_related_components_under_cursor, RegularExpressionsOptions.HighlightRelatedRegexComponentsUnderCursor, LanguageNames.CSharp);
BindToOption(Show_completion_list, RegularExpressionsOptions.ProvideRegexCompletions, LanguageNames.CSharp);
BindToOption(Use_enhanced_colors, FeatureOnOffOptions.UseEnhancedColors);
BindToOption(Editor_color_scheme, ColorSchemeOptions.ColorScheme);
}
// Since this dialog is constructed once for the lifetime of the application and VS Theme can be changed after the application has started,
// we need to update the visibility of our combobox and warnings based on the current VS theme before being rendered.
internal override void OnLoad()
{
var isSupportedTheme = _colorSchemeApplier.IsSupportedTheme();
var isThemeCustomized = _colorSchemeApplier.IsThemeCustomized();
Editor_color_scheme.Visibility = isSupportedTheme ? Visibility.Visible : Visibility.Collapsed;
Customized_Theme_Warning.Visibility = isSupportedTheme && isThemeCustomized ? Visibility.Visible : Visibility.Collapsed;
Custom_VS_Theme_Warning.Visibility = isSupportedTheme ? Visibility.Collapsed : Visibility.Visible;
base.OnLoad();
}
}
}
......@@ -2,6 +2,8 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Microsoft.CodeAnalysis.Editor.ColorSchemes;
namespace Microsoft.VisualStudio.LanguageServices.CSharp.Options
{
internal static class AdvancedOptionPageStrings
......@@ -195,10 +197,25 @@ public static string Option_SeparateImportGroups
public static string Option_Show_completion_list =>
ServicesVSResources.Show_completion_list;
public static string Option_Classifications =>
ServicesVSResources.Classifications;
public static string Option_Editor_Color_Scheme =>
ServicesVSResources.Editor_Color_Scheme;
public static string Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page
=> ServicesVSResources.Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page;
public static string Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations
=> ServicesVSResources.Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations;
public static string Option_Color_Scheme_Enhanced =>
ServicesVSResources.Enhanced;
public static string Option_Color_Scheme_VisualStudio2017 =>
ServicesVSResources.Visual_Studio_2017;
public static SchemeName Color_Scheme_Enhanced_Tag =>
SchemeName.Enhanced;
public static string Option_Use_enhanced_colors_for_C_and_Basic =>
ServicesVSResources.Use_enhanced_colors_for_C_and_Basic;
public static SchemeName Color_Scheme_VisualStudio2017_Tag =>
SchemeName.VisualStudio2017;
}
}
......@@ -187,7 +187,8 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</value>
Use enhanced colors;
Editor Color Scheme;</value>
<comment>C# Advanced options page keywords</comment>
</data>
<data name="307" xml:space="preserve">
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Zobrazit diagnostiku pro zavřené soubory;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Zobrazit diagnostiku pro zavřené soubory;
Vybarvit regulární výraz;
Zvýrazňovat související komponenty pod kurzorem;
Nahlásit neplatné regulární výrazy;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Diagnoseinformationen für geschlossene Dateien anzeigen;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Diagnoseinformationen für geschlossene Dateien anzeigen;
Reguläre Ausdrücke farbig hervorheben;
Zugehörige Komponenten unter dem Cursor markieren;
Ungültige reguläre Ausdrücke melden;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Mostrar diagnóstico para archivos cerrados;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Mostrar diagnóstico para archivos cerrados;
Colorear expresión regular;
Resaltar componentes relacionados bajo el cursor;
Informar sobre expresiones regulares no válidas;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Afficher les diagnostics pour les fichiers fermés ;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Afficher les diagnostics pour les fichiers fermés ;
Coloriser l'expression régulière ;
Surligner les composants liés sous le curseur ;
Signaler les expressions régulières non valides ;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Mostra diagnostica per file chiusi;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Mostra diagnostica per file chiusi;
Colora espressione regolare;
Evidenzia componenti correlati sotto il cursore;
Segnala espressioni regolari non valide;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">閉じているファイルの診断結果を表示する;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">閉じているファイルの診断結果を表示する;
正規表現をカラー化する;
カーソルの下にある関連コンポーネントをハイライトする;
無効な正規表現を報告する;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">닫힌 파일에 대한 진단 표시;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">닫힌 파일에 대한 진단 표시;
정규식 색 지정;
커서 아래의 관련 구성 요소 강조;
잘못된 정규식 보고;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Pokaż dane diagnostyczne dla zamkniętych plików;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Pokaż dane diagnostyczne dla zamkniętych plików;
Koloruj wyrażenia regularne;
Wyróżnij powiązane składniki pod kursorem;
Raportuj nieprawidłowe wyrażenia regularne;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Mostrar diagnósticos de arquivos fechados;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Mostrar diagnósticos de arquivos fechados;
Colorir a expressão regular;
Realçar os componentes relacionados sob o cursor;
Relatar expressões regulares inválidas;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">показывать диагностику для закрытых файлов;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">показывать диагностику для закрытых файлов;
выделить регулярные выражения цветом;
выделить связанные компоненты под курсором;
сообщать о недопустимых регулярных выражениях;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">Kapatılan dosyalara ilişkin tanılamaları göster;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">Kapatılan dosyalara ilişkin tanılamaları göster;
Normal ifadeyi renklendir;
İmlecin altında ilgili bileşenleri vurgula;
Geçersiz normal ifadeleri bildir;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">显示已关闭文件的诊断信息;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">显示已关闭文件的诊断信息;
对正则表达式着色;
突出显示游标下的相关组件;
报告无效的正则表达式;
......
......@@ -78,8 +78,9 @@ prefer throwing properties;
prefer auto properties;
regex;
regular expression;
Use enhanced colors;</source>
<target state="translated">顯示已關閉檔案的診斷;
Use enhanced colors;
Editor Color Scheme;</source>
<target state="needs-review-translation">顯示已關閉檔案的診斷;
為規則運算式標示色彩;
醒目提示游標下的相關元件;
回報無效的規則運算式;
......
此差异已折叠。
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
using System;
using System.Collections.Immutable;
using System.Diagnostics;
using Microsoft.VisualStudio.Shell.Interop;
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
internal partial class ColorSchemeApplier
{
/// <summary>
/// A ColorScheme represents a style to be applied to VS themes in
/// order to emphasize some aspect of the source code. For instance
/// C++ has an 'Enhanced (Globals vs. Members)' scheme to emphasize
/// a distinction between where identifiers are declared.
/// </summary>
private class ColorScheme
{
public ImmutableArray<ColorTheme> Themes { get; }
public ColorScheme(ImmutableArray<ColorTheme> themes)
{
Themes = themes;
}
}
/// <summary>
/// A ColorTheme contains a scheme's colors for a particular VS theme.
/// </summary>
private class ColorTheme
{
public string Name { get; }
public Guid Guid { get; }
public ColorCategory Category { get; }
public ColorTheme(string name, Guid guid, ColorCategory category)
{
Name = name;
Guid = guid;
Category = category;
}
}
private class ColorCategory
{
public string Name { get; }
public Guid Guid { get; }
public ImmutableArray<ColorItem> Colors { get; }
public ColorCategory(string name, Guid guid, ImmutableArray<ColorItem> colors)
{
Name = name;
Guid = guid;
Colors = colors;
}
}
private class ColorItem
{
public string Name { get; }
public __VSCOLORTYPE BackgroundType { get; }
public uint? Background { get; }
public __VSCOLORTYPE ForegroundType { get; }
public uint? Foreground { get; }
public ColorItem(string name, __VSCOLORTYPE backgroundType, uint? background, __VSCOLORTYPE foregroundType, uint? foreground)
{
Name = name;
Debug.Assert(backgroundType == __VSCOLORTYPE.CT_INVALID || background.HasValue);
BackgroundType = backgroundType;
Background = background;
Debug.Assert(foregroundType == __VSCOLORTYPE.CT_INVALID || foreground.HasValue);
ForegroundType = foregroundType;
Foreground = foreground;
}
}
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
using System;
using System.Collections.Immutable;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using Microsoft.VisualStudio.Shell.Interop;
using Roslyn.Utilities;
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
internal partial class ColorSchemeApplier
{
private static class ColorSchemeReader
{
private static readonly XmlReaderSettings s_xmlSettings = new XmlReaderSettings { DtdProcessing = DtdProcessing.Prohibit };
private const string RawColorType = nameof(__VSCOLORTYPE.CT_RAW);
private const string SystemColorType = nameof(__VSCOLORTYPE.CT_SYSCOLOR);
public static ColorScheme ReadColorScheme(Stream schemeStream)
{
using var xmlReader = XmlReader.Create(schemeStream, s_xmlSettings);
var schemeDocument = XDocument.Load(xmlReader);
var themes = schemeDocument
.Descendants("Theme")
.Select(ReadColorTheme);
return new ColorScheme(themes.ToImmutableArray());
}
private static ColorTheme ReadColorTheme(XElement themeElement)
{
var themeName = (string)themeElement.Attribute("Name");
var themeGuid = Guid.Parse((string)themeElement.Attribute("GUID"));
var categoryElement = themeElement.Descendants("Category").Single();
var category = ReadColorCategory(categoryElement);
return new ColorTheme(themeName, themeGuid, category);
}
private static ColorCategory ReadColorCategory(XElement categoryElement)
{
var categoryName = (string)categoryElement.Attribute("Name");
var categoryGuid = Guid.Parse((string)categoryElement.Attribute("GUID"));
var colorItems = categoryElement
.Descendants("Color")
.Select(ReadColorItem)
.WhereNotNull();
return new ColorCategory(categoryName, categoryGuid, colorItems.ToImmutableArray());
}
private static ColorItem? ReadColorItem(XElement colorElement)
{
var name = (string)colorElement.Attribute("Name");
var backgroundElement = colorElement.Descendants("Background").SingleOrDefault();
(var backgroundType, var backgroundColor) = backgroundElement is object
? ReadColor(backgroundElement)
: (__VSCOLORTYPE.CT_INVALID, (uint?)null);
var foregroundElement = colorElement.Descendants("Foreground").SingleOrDefault();
(var foregroundType, var foregroundColor) = foregroundElement is object
? ReadColor(foregroundElement)
: (__VSCOLORTYPE.CT_INVALID, (uint?)null);
if (backgroundElement is null && foregroundElement is null)
{
return null;
}
return new ColorItem(name, backgroundType, backgroundColor, foregroundType, foregroundColor);
}
private static (__VSCOLORTYPE Type, uint Color) ReadColor(XElement colorElement)
{
var colorType = (string)colorElement.Attribute("Type");
var sourceColor = (string)colorElement.Attribute("Source");
__VSCOLORTYPE type;
uint color;
if (colorType == RawColorType)
{
type = __VSCOLORTYPE.CT_RAW;
// The ColorableItemInfo returned by the FontAndColorStorage retuns RGB color information as 0x00BBGGRR.
// Optimize for color comparisons by converting ARGB to BGR by ignoring the alpha channel and reversing byte order.
var r = sourceColor.Substring(2, 2);
var g = sourceColor.Substring(4, 2);
var b = sourceColor.Substring(6, 2);
color = uint.Parse($"{b}{g}{r}", NumberStyles.HexNumber);
}
else if (colorType == SystemColorType)
{
type = __VSCOLORTYPE.CT_SYSCOLOR;
color = uint.Parse(sourceColor, NumberStyles.HexNumber);
}
else
{
throw ExceptionUtilities.UnexpectedValue(colorType);
}
return (type, color);
}
}
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Windows;
using Microsoft.CodeAnalysis.Classification;
using Microsoft.CodeAnalysis.Editor.ColorSchemes;
using Microsoft.CodeAnalysis.Editor.Shared.Utilities;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.TextManager.Interop;
using Roslyn.Utilities;
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
internal partial class ColorSchemeApplier
{
// Now that we are updating the theme's default color for classifications instead of updating the applied classification color, we need to
// update the classifications whose applied color matches the theme's color. These need to be reverted to the default color so that when we
// change theme colors it will be reflected in the editor.
private sealed class ForegroundColorDefaulter : ForegroundThreadAffinitizedObject
{
private readonly IServiceProvider _serviceProvider;
private readonly ColorSchemeSettings _settings;
// Holds an lookup optimized version of the ColorScheme data. An array of ColorSchemes where ColorTheme data is
// indexed by ThemeId. ColorTheme data being foreground color indexed by classification name.
private readonly ImmutableArray<ImmutableDictionary<Guid, ImmutableDictionary<string, uint>>> _colorSchemes;
private static readonly Guid TextEditorMEFItemsColorCategory = new Guid("75a05685-00a8-4ded-bae5-e7a50bfa929a");
// These classification colors (0x00BBGGRR) should match the VS\EditorColors.xml file.
// They are not in the scheme files because they are core classifications.
private const uint DarkThemePlainText = 0x00DCDCDCu;
private const uint DarkThemeIdentifier = DarkThemePlainText;
private const uint DarkThemeOperator = 0x00B4B4B4u;
private const uint DarkThemeKeyword = 0x00D69C56u;
private const uint LightThemePlainText = 0x00000000u;
private const uint LightThemeIdentifier = LightThemePlainText;
private const uint LightThemeOperator = LightThemePlainText;
private const uint LightThemeKeyword = 0x00FF0000u;
private const string PlainTextClassificationTypeName = "plain text";
// Dark Theme Core Classifications
private static ImmutableDictionary<string, uint> DarkThemeForeground =>
new Dictionary<string, uint>()
{
[PlainTextClassificationTypeName] = DarkThemePlainText,
[ClassificationTypeNames.Identifier] = DarkThemeIdentifier,
[ClassificationTypeNames.Keyword] = DarkThemeKeyword,
[ClassificationTypeNames.Operator] = DarkThemeOperator,
}.ToImmutableDictionary();
// Light, Blue, or AdditionalContrast Theme Core Classifications
private static ImmutableDictionary<string, uint> BlueLightThemeForeground =>
new Dictionary<string, uint>()
{
[PlainTextClassificationTypeName] = LightThemePlainText,
[ClassificationTypeNames.Identifier] = LightThemeIdentifier,
[ClassificationTypeNames.Keyword] = LightThemeKeyword,
[ClassificationTypeNames.Operator] = LightThemeOperator,
}.ToImmutableDictionary();
// The High Contrast theme is not included because we do not want to make changes when the user is in High Contrast mode.
private IVsFontAndColorStorage? _fontAndColorStorage;
private IVsFontAndColorStorage3? _fontAndColorStorage3;
private IVsFontAndColorUtilities? _fontAndColorUtilities;
private ImmutableArray<string> Classifications { get; }
public ForegroundColorDefaulter(IThreadingContext threadingContext, IServiceProvider serviceProvider, ColorSchemeSettings settings, ImmutableDictionary<SchemeName, ColorScheme> colorSchemes)
: base(threadingContext)
{
_serviceProvider = serviceProvider;
_settings = settings;
// Convert colors schemes into an array of theme dictionaries which contain classification dictionaries of colors.
_colorSchemes = colorSchemes.Values.Select(
scheme => scheme.Themes.ToImmutableDictionary(
theme => theme.Guid,
theme => theme.Category.Colors
.Where(color => color.Foreground.HasValue)
.ToImmutableDictionary(
color => color.Name,
color => color.Foreground!.Value)))
.ToImmutableArray();
// Gather all the classifications from the core and scheme dictionaries.
var coreClassifications = DarkThemeForeground.Keys.Concat(BlueLightThemeForeground.Keys).Distinct();
var colorSchemeClassifications = _colorSchemes.SelectMany(scheme => scheme.Values.SelectMany(theme => theme.Keys)).Distinct();
Classifications = coreClassifications.Concat(colorSchemeClassifications).ToImmutableArray();
}
private void EnsureInitialized()
{
if (_fontAndColorStorage is object)
{
return;
}
_fontAndColorStorage = _serviceProvider.GetService<SVsFontAndColorStorage, IVsFontAndColorStorage>();
// IVsFontAndColorStorage3 has methods to default classifications but does not include the methods defined in IVsFontAndColorStorage
_fontAndColorStorage3 = (IVsFontAndColorStorage3)_fontAndColorStorage!;
_fontAndColorUtilities = (IVsFontAndColorUtilities)_fontAndColorStorage!;
}
/// <summary>
/// Determines if all Classification foreground colors are DefaultColor or can be safely reverted to DefaultColor.
/// </summary>
public bool AreClassificationsDefaultable(Guid themeId)
{
AssertIsForeground();
EnsureInitialized();
// Make no changes when in high contast mode or in unknown theme.
if (SystemParameters.HighContrast || !IsSupportedTheme(themeId))
{
return false;
}
// Open Text Editor category for readonly access and do not load items if they are defaulted.
if (_fontAndColorStorage!.OpenCategory(TextEditorMEFItemsColorCategory, (uint)__FCSTORAGEFLAGS.FCSF_READONLY) != VSConstants.S_OK)
{
// We were unable to access color information.
return false;
}
try
{
foreach (var scheme in _colorSchemes)
{
var schemeThemeColors = scheme[themeId];
if (AreClassificationsDefaultableToScheme(themeId, schemeThemeColors))
{
return true;
}
}
}
finally
{
_fontAndColorStorage.CloseCategory();
}
return false;
}
private bool IsSupportedTheme(Guid themeId)
{
return _colorSchemes.Any(scheme => scheme.ContainsKey(themeId));
}
private bool AreClassificationsDefaultableToScheme(Guid themeId, ImmutableDictionary<string, uint> schemeThemeColors)
{
AssertIsForeground();
foreach (var classification in Classifications)
{
var colorItems = new ColorableItemInfo[1];
if (_fontAndColorStorage!.GetItem(classification, colorItems) != VSConstants.S_OK)
{
// Classifications that are still defaulted will not have entries.
continue;
}
var colorItem = colorItems[0];
if (!IsClassificationDefaultable(themeId, schemeThemeColors, colorItem, classification))
{
return false;
}
}
return true;
}
/// <summary>
/// Determines if the ColorableItemInfo's Foreground is already defaulted or if the Info can be reverted to its default state.
/// This requires checking both background color and font configuration, since reverting will reset all information for the item.
/// </summary>
private bool IsClassificationDefaultable(Guid themeId, ImmutableDictionary<string, uint> schemeThemeColors, ColorableItemInfo colorItem, string classification)
{
AssertIsForeground();
if (_fontAndColorUtilities!.GetColorType(colorItem.crForeground, out var foregroundColorType) != VSConstants.S_OK)
{
// Without being able to check color type, we cannot make a determination.
return false;
}
if (_fontAndColorUtilities!.GetColorType(colorItem.crBackground, out var backgroundColorType) != VSConstants.S_OK)
{
// Without being able to check color type, we cannot make a determination.
return false;
}
return foregroundColorType switch
{
// The item's foreground is already defaulted and there is no work to be done.
(int)__VSCOLORTYPE.CT_AUTOMATIC => true,
// The item's foreground is set. Does it match the scheme's color and is the rest of the item defaulted?
(int)__VSCOLORTYPE.CT_RAW => IsForegroundTheSchemeColor(themeId, schemeThemeColors, classification, colorItem.crForeground)
&& backgroundColorType == (int)__VSCOLORTYPE.CT_AUTOMATIC
&& colorItem.dwFontFlags == (uint)FONTFLAGS.FF_DEFAULT,
_ => false
};
}
private bool IsForegroundTheSchemeColor(Guid themeId, ImmutableDictionary<string, uint> schemeThemeColors, string classification, uint foregroundColorRef)
{
var coreThemeColors = (themeId == KnownColorThemes.Dark)
? DarkThemeForeground
: BlueLightThemeForeground;
if (coreThemeColors.TryGetValue(classification, out var coreColor))
{
return foregroundColorRef == coreColor;
}
if (schemeThemeColors.TryGetValue(classification, out var schemeColor))
{
return foregroundColorRef == schemeColor;
}
// Since Classification inheritance isn't represented in the scheme files,
// this switch case will handle the 3 cases we expect.
var fallbackColor = classification switch
{
ClassificationTypeNames.OperatorOverloaded => coreThemeColors[ClassificationTypeNames.Operator],
ClassificationTypeNames.ControlKeyword => coreThemeColors[ClassificationTypeNames.Keyword],
_ => coreThemeColors[ClassificationTypeNames.Identifier]
};
return foregroundColorRef == fallbackColor;
}
/// <summary>
/// Reverts Classifications to their default state.
/// </summary>
public void DefaultClassifications()
{
AssertIsForeground();
var themeId = _settings.GetThemeId();
// Make no changes when in high contast mode, in unknown theme, or if theme has been defaulted.
if (SystemParameters.HighContrast || !IsSupportedTheme(themeId) || _settings.HasThemeBeenDefaulted[themeId])
{
return;
}
// Open Text Editor category for read/write.
if (_fontAndColorStorage!.OpenCategory(TextEditorMEFItemsColorCategory, (uint)__FCSTORAGEFLAGS.FCSF_PROPAGATECHANGES) != VSConstants.S_OK)
{
// We were unable to access color information.
return;
}
try
{
foreach (var classification in Classifications)
{
DefaultClassification(classification);
}
}
finally
{
_fontAndColorStorage.CloseCategory();
}
_settings.HasThemeBeenDefaulted[themeId] = true;
}
private void DefaultClassification(string classification)
{
AssertIsForeground();
EnsureInitialized();
var colorItems = new ColorableItemInfo[1];
if (_fontAndColorStorage!.GetItem(classification, colorItems) != VSConstants.S_OK)
{
// Classifications that are still defaulted will not have entries.
return;
}
var colorItem = colorItems[0];
// If the foreground is the automatic color then no need to default the classification,
// since it will pull in the theme's color.
if (_fontAndColorUtilities!.GetColorType(colorItem.crForeground, out var foregroundColorType) == VSConstants.S_OK
&& foregroundColorType == (int)__VSCOLORTYPE.CT_AUTOMATIC)
{
return;
}
_fontAndColorStorage3!.RevertItemToDefault(classification);
}
}
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
internal partial class ColorSchemeApplier
{
private class RegistryItem
{
public string SectionName { get; }
public string ValueName => "Data";
public byte[] ValueData { get; }
public RegistryItem(string sectionName, byte[] valueData)
{
SectionName = sectionName;
ValueData = valueData;
}
}
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
using System;
using System.Collections.Immutable;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.Shell.Interop;
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
internal partial class ColorSchemeApplier
{
private static class RegistryItemConverter
{
private const uint FullyOpaqueAlpha = 0xFF000000;
private const uint RegistryVersion = 0x0B;
public static ImmutableArray<RegistryItem> Convert(ColorScheme scheme)
{
return scheme.Themes
.Select(ToRegistryItem)
.ToImmutableArray();
}
private static RegistryItem ToRegistryItem(ColorTheme theme)
{
var sectionName = $"Themes\\{theme.Guid:B}\\{theme.Category.Name}";
var data = ToData(theme);
return new RegistryItem(sectionName, data);
}
private static byte[] ToData(ColorTheme theme)
{
//|-------------Header----------------|--Categories...
//|-Byte Count|--Version--|CategoryCnt|--
//:ca,05,00,00,0b,00,00,00,01,00,00,00,--
// Initialize with a generous initial capacity.
var bytes = new MemoryStream(4096);
// Reserve space to write the total length.
WriteDWord(bytes, 0);
// Write the Version into the header.
WriteDWord(bytes, RegistryVersion);
// Write the category count into the header.
WriteDWord(bytes, 1);
WriteCategory(bytes, theme.Category);
// Write the data length into the space that we reserved.
bytes.Seek(0, SeekOrigin.Begin);
WriteDWord(bytes, (uint)bytes.Length);
return bytes.ToArray();
}
private static void WriteDWord(MemoryStream bytes, uint dword)
{
bytes.WriteByte((byte)dword);
bytes.WriteByte((byte)(dword >> 8));
bytes.WriteByte((byte)(dword >> 16));
bytes.WriteByte((byte)(dword >> 24));
}
private static void WriteCategory(MemoryStream bytes, ColorCategory category)
{
// |------------------------Category---------------------------|--Items...
// |----------------Category GUID------------------|-Item Count|--
// ,85,56,a0,75,a8,00,ed,4d,ba,e5,e7,a5,0b,fa,92,9a,2e,00,00,00,--
WriteGuid(bytes, category.Guid);
WriteDWord(bytes, (uint)category.Colors.Length);
foreach (var color in category.Colors)
{
WriteColor(bytes, color);
}
return;
static void WriteGuid(MemoryStream bytes, Guid guid)
{
bytes.Write(guid.ToByteArray(), 0, 16);
}
}
private static void WriteColor(MemoryStream bytes, ColorItem color)
{
// |-------------------------Item:Punctuation---------------------|
// |Name Length|-------------Name---------------|CT|CT|-ColorRef--|
// ,0b,00,00,00,70,75,6e,63,74,75,61,74,69,6f,6e,00,01,00,00,00,ff,
WriteDWord(bytes, (uint)color.Name.Length);
bytes.Write(Encoding.ASCII.GetBytes(color.Name), 0, color.Name.Length);
bytes.WriteByte((byte)color.BackgroundType);
if (color.Background.HasValue)
{
var background = color.Background.Value;
// Add back a fully opaque alpha value for RGB colors
if (color.BackgroundType == __VSCOLORTYPE.CT_RAW)
{
background |= FullyOpaqueAlpha;
}
WriteDWord(bytes, background);
}
bytes.WriteByte((byte)color.ForegroundType);
if (color.Foreground.HasValue)
{
var foreground = color.Foreground.Value;
// Add back a fully opaque alpha value for RGB colors
if (color.ForegroundType == __VSCOLORTYPE.CT_RAW)
{
foreground |= FullyOpaqueAlpha;
}
WriteDWord(bytes, foreground);
}
return;
}
}
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.IO;
using System.Reflection;
using Microsoft.CodeAnalysis.Editor.ColorSchemes;
using Microsoft.CodeAnalysis.Editor.Options;
using Microsoft.CodeAnalysis.Options;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using NativeMethods = Microsoft.CodeAnalysis.Editor.Wpf.Utilities.NativeMethods;
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
internal partial class ColorSchemeApplier
{
private class ColorSchemeSettings
{
private readonly IServiceProvider _serviceProvider;
private readonly VisualStudioWorkspace _workspace;
public HasThemeBeenDefaultedIndexer HasThemeBeenDefaulted { get; }
public ColorSchemeSettings(IServiceProvider serviceProvider, VisualStudioWorkspace visualStudioWorkspace)
{
_serviceProvider = serviceProvider;
_workspace = visualStudioWorkspace;
HasThemeBeenDefaulted = new HasThemeBeenDefaultedIndexer(visualStudioWorkspace);
}
public ImmutableDictionary<SchemeName, ColorScheme> GetColorSchemes()
{
return new[]
{
SchemeName.Enhanced,
SchemeName.VisualStudio2017
}.ToImmutableDictionary(name => name, name => GetColorScheme(name));
}
private ColorScheme GetColorScheme(SchemeName schemeName)
{
using var colorSchemeStream = GetColorSchemeXmlStream(schemeName);
return ColorSchemeReader.ReadColorScheme(colorSchemeStream);
}
private Stream GetColorSchemeXmlStream(SchemeName schemeName)
{
var assembly = Assembly.GetExecutingAssembly();
return assembly.GetManifestResourceStream($"Microsoft.VisualStudio.LanguageServices.ColorSchemes.{schemeName}.xml");
}
public void ApplyColorScheme(SchemeName schemeName, ImmutableArray<RegistryItem> registryItems)
{
using var registryRoot = VSRegistry.RegistryRoot(_serviceProvider, __VsLocalRegistryType.RegType_Configuration, writable: true);
foreach (var item in registryItems)
{
using var itemKey = registryRoot.CreateSubKey(item.SectionName);
itemKey.SetValue(item.ValueName, item.ValueData);
}
_workspace.SetOptions(_workspace.Options.WithChangedOption(ColorSchemeOptions.AppliedColorScheme, schemeName));
// Broadcast that system color settings have changed to force the ColorThemeService to reload colors.
NativeMethods.PostMessage(NativeMethods.HWND_BROADCAST, NativeMethods.WM_SYSCOLORCHANGE, wparam: IntPtr.Zero, lparam: IntPtr.Zero);
}
public SchemeName GetAppliedColorScheme()
{
var schemeName = _workspace.Options.GetOption(ColorSchemeOptions.AppliedColorScheme);
return schemeName != SchemeName.None
? schemeName
: ColorSchemeOptions.AppliedColorScheme.DefaultValue;
}
public SchemeName GetConfiguredColorScheme()
{
var schemeName = _workspace.Options.GetOption(ColorSchemeOptions.ColorScheme);
return schemeName != SchemeName.None
? schemeName
: ColorSchemeOptions.ColorScheme.DefaultValue;
}
public void MigrateToColorSchemeSetting(bool isThemeCustomized)
{
// Get the preview feature flag value.
var useEnhancedColorsSetting = _workspace.Options.GetOption(ColorSchemeOptions.LegacyUseEnhancedColors);
// Return if we have already migrated.
if (useEnhancedColorsSetting == ColorSchemeOptions.UseEnhancedColors.Migrated)
{
return;
}
// Since we did not apply enhanced colors if the theme had been customized, default customized themes to classic colors.
var colorScheme = (useEnhancedColorsSetting != ColorSchemeOptions.UseEnhancedColors.DoNotUse && !isThemeCustomized)
? SchemeName.Enhanced
: SchemeName.VisualStudio2017;
_workspace.SetOptions(_workspace.Options.WithChangedOption(ColorSchemeOptions.ColorScheme, colorScheme));
_workspace.SetOptions(_workspace.Options.WithChangedOption(ColorSchemeOptions.LegacyUseEnhancedColors, ColorSchemeOptions.UseEnhancedColors.Migrated));
}
public Guid GetThemeId()
{
// Look up the value from the new roamed theme property first and
// fallback to the original roamed theme property if that fails.
var themeIdString = _workspace.Options.GetOption(VisualStudioColorTheme.CurrentThemeNew)
?? _workspace.Options.GetOption(VisualStudioColorTheme.CurrentTheme);
return Guid.TryParse(themeIdString, out var themeId) ? themeId : Guid.Empty;
}
private static class VisualStudioColorTheme
{
private const string CurrentThemeValueName = "Microsoft.VisualStudio.ColorTheme";
private const string CurrentThemeValueNameNew = "Microsoft.VisualStudio.ColorThemeNew";
public static readonly Option<string?> CurrentTheme = new Option<string?>(nameof(VisualStudioColorTheme),
nameof(CurrentTheme),
defaultValue: null,
storageLocations: new RoamingProfileStorageLocation(CurrentThemeValueName));
public static readonly Option<string?> CurrentThemeNew = new Option<string?>(nameof(VisualStudioColorTheme),
nameof(CurrentThemeNew),
defaultValue: null,
storageLocations: new RoamingProfileStorageLocation(CurrentThemeValueNameNew));
}
public sealed class HasThemeBeenDefaultedIndexer
{
private static readonly ImmutableDictionary<Guid, Option<bool>> HasThemeBeenDefaultedOptions = new Dictionary<Guid, Option<bool>>
{
[KnownColorThemes.Blue] = CreateHasThemeBeenDefaultedOption(KnownColorThemes.Blue),
[KnownColorThemes.Light] = CreateHasThemeBeenDefaultedOption(KnownColorThemes.Light),
[KnownColorThemes.Dark] = CreateHasThemeBeenDefaultedOption(KnownColorThemes.Dark),
[KnownColorThemes.AdditionalContrast] = CreateHasThemeBeenDefaultedOption(KnownColorThemes.AdditionalContrast)
}.ToImmutableDictionary();
private static Option<bool> CreateHasThemeBeenDefaultedOption(Guid themeId)
{
return new Option<bool>(nameof(ColorSchemeApplier), $"{nameof(HasThemeBeenDefaultedOptions)}{themeId}", defaultValue: false,
storageLocations: new RoamingProfileStorageLocation($@"Roslyn\ColorSchemeApplier\HasThemeBeenDefaulted\{themeId}"));
}
private readonly VisualStudioWorkspace _workspace;
public HasThemeBeenDefaultedIndexer(VisualStudioWorkspace visualStudioWorkspace)
{
_workspace = visualStudioWorkspace;
}
public bool this[Guid themeId]
{
get => _workspace.Options.GetOption(HasThemeBeenDefaultedOptions[themeId]);
set => _workspace.SetOptions(_workspace.Options.WithChangedOption(HasThemeBeenDefaultedOptions[themeId], value));
}
}
}
}
}
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable enable
using System;
using System.Collections.Immutable;
using System.ComponentModel;
using System.ComponentModel.Composition;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using Microsoft.CodeAnalysis.Editor.ColorSchemes;
using Microsoft.CodeAnalysis.Editor.Options;
using Microsoft.CodeAnalysis.Editor.Shared.Utilities;
using Microsoft.CodeAnalysis.Host.Mef;
using Microsoft.VisualStudio.PlatformUI;
using Microsoft.VisualStudio.Settings;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using Roslyn.Utilities;
using Task = System.Threading.Tasks.Task;
namespace Microsoft.VisualStudio.LanguageServices.ColorSchemes
{
[Export(typeof(ColorSchemeApplier))]
internal sealed partial class ColorSchemeApplier : ForegroundThreadAffinitizedObject, IDisposable
{
private readonly IServiceProvider _serviceProvider;
private readonly ColorSchemeSettings _settings;
private readonly ImmutableDictionary<SchemeName, ColorScheme> _colorSchemes;
private readonly AsyncLazy<ImmutableDictionary<SchemeName, ImmutableArray<RegistryItem>>> _colorSchemeRegistryItems;
private readonly ForegroundColorDefaulter _colorDefaulter;
private bool _isInitialized = false;
private bool _isDisposed = false;
[ImportingConstructor]
[Obsolete(MefConstruction.ImportingConstructorMessage, error: true)]
public ColorSchemeApplier(
IThreadingContext threadingContext,
VisualStudioWorkspace visualStudioWorkspace,
[Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
: base(threadingContext)
{
_serviceProvider = serviceProvider;
_settings = new ColorSchemeSettings(_serviceProvider, visualStudioWorkspace);
_colorSchemes = _settings.GetColorSchemes();
_colorDefaulter = new ForegroundColorDefaulter(threadingContext, serviceProvider, _settings, _colorSchemes);
_colorSchemeRegistryItems = new AsyncLazy<ImmutableDictionary<SchemeName, ImmutableArray<RegistryItem>>>(GetColorSchemeRegistryItemsAsync, cacheResult: true);
}
public void Dispose()
{
// Dispose is invoked when the MEF container is disposed. This will be our
// signal that VS is shutting down and we shouldn't try and perform any work.
_isDisposed = true;
}
public void Initialize()
{
AssertIsForeground();
if (!_isInitialized)
{
_isInitialized = true;
_ = _colorSchemeRegistryItems.GetValueAsync(CancellationToken.None);
// We need to update the theme whenever the Editor Color Scheme setting changes or the VS Theme changes.
var settingsManager = (ISettingsManager)_serviceProvider.GetService(typeof(SVsSettingsPersistenceManager));
settingsManager.GetSubset(ColorSchemeOptions.ColorSchemeSettingKey).SettingChangedAsync += ColorSchemeChanged;
VSColorTheme.ThemeChanged += VSColorTheme_ThemeChanged;
// Try to migrate the `useEnhancedColorsSetting` to the new `ColorScheme` setting.
_settings.MigrateToColorSchemeSetting(IsThemeCustomized());
QueueColorSchemeUpdate(themeChanged: true);
}
}
private Task<ImmutableDictionary<SchemeName, ImmutableArray<RegistryItem>>> GetColorSchemeRegistryItemsAsync(CancellationToken arg)
{
return SpecializedTasks.FromResult(_colorSchemes.ToImmutableDictionary(kvp => kvp.Key, kvp => RegistryItemConverter.Convert(kvp.Value)));
}
private void VSColorTheme_ThemeChanged(ThemeChangedEventArgs e)
{
QueueColorSchemeUpdate(themeChanged: true);
}
private async Task ColorSchemeChanged(object sender, PropertyChangedEventArgs args)
{
await QueueColorSchemeUpdate();
}
private IVsTask QueueColorSchemeUpdate(bool themeChanged = false)
{
// Wait until things have settled down from the theme change, since we will potentially be changing theme colors.
return VsTaskLibraryHelper.CreateAndStartTask(
VsTaskLibraryHelper.ServiceInstance, VsTaskRunContext.UIThreadBackgroundPriority, () => UpdateColorScheme(themeChanged));
}
private void UpdateColorScheme(bool themeChanged = false)
{
AssertIsForeground();
// Simply return if we were queued to run during shutdown or the user is in High Contrast mode.
if (_isDisposed || SystemParameters.HighContrast)
{
return;
}
if (themeChanged)
{
// Default Foreground colors if they match our theme colors.
_colorDefaulter.DefaultClassifications();
}
// If the color scheme has updated, apply the scheme.
if (TryGetUpdatedColorScheme(out var colorScheme))
{
var colorSchemeRegistryItems = _colorSchemeRegistryItems.GetValue(CancellationToken.None);
_settings.ApplyColorScheme(colorScheme.Value, colorSchemeRegistryItems[colorScheme.Value]);
}
}
/// <summary>
/// Returns true if the color scheme needs updating.
/// </summary>
/// <param name="colorScheme">The color scheme to update with.</param>
private bool TryGetUpdatedColorScheme([NotNullWhen(returnValue: true)]out SchemeName? colorScheme)
{
// The color scheme that is currently applied to the registry
var appliedColorScheme = _settings.GetAppliedColorScheme();
// If this is a supported theme then, use the users configured scheme, otherwise fallback to the VS 2017.
// Custom themes would be based on the MEF exported color information for classifications which matches the VS 2017 theme.
var configuredColorScheme = IsSupportedTheme()
? _settings.GetConfiguredColorScheme()
: SchemeName.VisualStudio2017;
if (appliedColorScheme == configuredColorScheme)
{
colorScheme = null;
return false;
}
colorScheme = configuredColorScheme;
return true;
}
public bool IsSupportedTheme()
{
return IsSupportedTheme(_settings.GetThemeId());
}
public bool IsSupportedTheme(Guid themeId)
{
return _colorSchemes.Values.Any(
scheme => scheme.Themes.Any(
theme => theme.Guid == themeId));
}
public bool IsThemeCustomized()
{
return !_colorDefaulter.AreClassificationsDefaultable(_settings.GetThemeId());
}
// NOTE: This service is not public or intended for use by teams/individuals outside of Microsoft. Any data stored is subject to deletion without warning.
[Guid("9B164E40-C3A2-4363-9BC5-EB4039DEF653")]
private class SVsSettingsPersistenceManager { }
}
}
......@@ -50,6 +50,8 @@
<DesignTime>True</DesignTime>
<DependentUpon>VSPackage.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="ColorSchemes\Enhanced.xml" />
<EmbeddedResource Include="ColorSchemes\VisualStudio2017.xml" />
</ItemGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\Compilers\Core\Portable\Microsoft.CodeAnalysis.csproj" />
......
......@@ -19,6 +19,7 @@
using Microsoft.CodeAnalysis.Options;
using Microsoft.CodeAnalysis.Versions;
using Microsoft.VisualStudio.ComponentModelHost;
using Microsoft.VisualStudio.LanguageServices.ColorSchemes;
using Microsoft.VisualStudio.LanguageServices.Experimentation;
using Microsoft.VisualStudio.LanguageServices.Implementation;
using Microsoft.VisualStudio.LanguageServices.Implementation.Diagnostics;
......@@ -46,6 +47,7 @@ internal class RoslynPackage : AbstractPackage
private VisualStudioWorkspace _workspace;
private IComponentModel _componentModel;
private RuleSetEventHandler _ruleSetEventHandler;
private ColorSchemeApplier _colorSchemeApplier;
private IDisposable _solutionEventMonitor;
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
......@@ -96,6 +98,10 @@ private void InitializeColors()
CodeAnalysisColors.BackgroundBrushKey = VsBrushes.CommandBarGradientBeginKey;
CodeAnalysisColors.ButtonStyleKey = VsResourceKeys.ButtonStyleKey;
CodeAnalysisColors.AccentBarColorKey = EnvironmentColors.FileTabInactiveDocumentBorderEdgeBrushKey;
// Initialize ColorScheme support
_colorSchemeApplier = _componentModel.GetService<ColorSchemeApplier>();
_colorSchemeApplier.Initialize();
}
protected override async Task LoadComponentsAsync(CancellationToken cancellationToken)
......
......@@ -1148,9 +1148,6 @@ I agree to all of the foregoing:</value>
<data name="Select_member" xml:space="preserve">
<value>Select member</value>
</data>
<data name="Classifications" xml:space="preserve">
<value>Classifications</value>
</data>
<data name="Prefer_static_local_functions" xml:space="preserve">
<value>Prefer static local functions</value>
</data>
......@@ -1160,9 +1157,6 @@ I agree to all of the foregoing:</value>
<data name="Show_completion_list" xml:space="preserve">
<value>Show completion list</value>
</data>
<data name="Use_enhanced_colors_for_C_and_Basic" xml:space="preserve">
<value>Use enhanced colors for C# and Basic</value>
</data>
<data name="Move_to_namespace" xml:space="preserve">
<value>Move to Namespace</value>
</data>
......@@ -1363,4 +1357,19 @@ I agree to all of the foregoing:</value>
<data name="Value_colon" xml:space="preserve">
<value>Value:</value>
</data>
<data name="Editor_Color_Scheme" xml:space="preserve">
<value>Editor Color Scheme</value>
</data>
<data name="Enhanced" xml:space="preserve">
<value>Enhanced</value>
</data>
<data name="Visual_Studio_2017" xml:space="preserve">
<value>Visual Studio 2017</value>
</data>
<data name="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page" xml:space="preserve">
<value>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</value>
</data>
<data name="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations" xml:space="preserve">
<value>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</value>
</data>
</root>
\ No newline at end of file
......@@ -82,11 +82,6 @@
<target state="translated">Počítají se závislosti...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Klasifikace</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Dokončila se analýza kódu pro {0}.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Aktuální dokument</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">Element není platný.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Celé řešení</target>
......@@ -527,6 +537,11 @@
<target state="translated">Zobrazit seznam pro doplňování</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Cílový obor názvů:</target>
......@@ -557,11 +572,6 @@
<target state="translated">Použít režim kompatibility .editorconfig (vyžaduje restart)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Pro C# a Basic používat rozšířené barvy</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Pro výrazy lambda používat text výrazu</target>
......@@ -587,6 +597,11 @@
<target state="translated">Hodnota vrácená voláním je implicitně ignorována.</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Zaznamenali jsme, že jste pozastavili: {0}. Obnovte mapování klávesnice, abyste mohli pokračovat v navigaci a refactoringu.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Abhängige Objekte werden berechnet...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Klassifizierungen</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Die Codeanalyse für "{0}" wurde abgeschlossen.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Aktuelles Dokument</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">Das Element ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Gesamte Projektmappe</target>
......@@ -527,6 +537,11 @@
<target state="translated">Vervollständigungsliste anzeigen</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Zielnamespace:</target>
......@@ -557,11 +572,6 @@
<target state="translated">.EDITORCONFIG-Kompatibilitätsmodus verwenden (Neustart erforderlich)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Erweiterte Farben für C# und Basic verwenden</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Ausdruckskörper für Lambdaausdrücke verwenden</target>
......@@ -587,6 +597,11 @@
<target state="translated">Der vom Aufruf zurückgegebene Wert wird implizit ignoriert.</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Wir haben festgestellt, dass Sie "{0}" angehalten haben. Setzen Sie die Tastenzuordnungen zurück, um Navigation und Umgestaltung fortzusetzen.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Calculando dependientes...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Clasificaciones</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">El análisis de código se ha completado para "{0}".</target>
......@@ -117,11 +112,26 @@
<target state="translated">Documento actual</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">El elemento no es válido.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Toda la solución</target>
......@@ -527,6 +537,11 @@
<target state="translated">Mostrar lista de finalización</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Espacio de nombres de destino:</target>
......@@ -557,11 +572,6 @@
<target state="translated">Usar el modo de compatibilidad .editorconfig (requiere reiniciar el equipo)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Use los colores mejorados para C# y Basic</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Usar cuerpo de expresión para lambdas</target>
......@@ -587,6 +597,11 @@
<target state="translated">El valor devuelto por la invocación se omite implícitamente</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Observamos que ha suspendido "{0}". Restablezca las asignaciones de teclado para continuar navegando y refactorizando.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Calcul des dépendants...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Classifications</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Analyse du code effectuée pour '{0}'.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Document en cours</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">L'élément n'est pas valide.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Solution complète</target>
......@@ -527,6 +537,11 @@
<target state="translated">Afficher la liste de saisie semi-automatique</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Espace de noms cible :</target>
......@@ -557,11 +572,6 @@
<target state="translated">Utiliser le mode de compatibilité de .editorconfig (nécessite un redémarrage)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Utiliser les couleurs améliorées en C# et Basic</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Utiliser un corps d'expression pour les expressions lambda</target>
......@@ -587,6 +597,11 @@
<target state="translated">La valeur retournée par invocation est implicitement ignorée</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Nous avons remarqué que vous avez interrompu '{0}'. Réinitialisez la configuration du clavier pour continuer à naviguer et à refactoriser.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Calcolo dei dipendenti...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Classificazioni</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Analisi codice completata per '{0}'.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Documento corrente</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">L'elemento non è valido.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Intera soluzione</target>
......@@ -527,6 +537,11 @@
<target state="translated">Mostra l'elenco di completamento</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Spazio dei nomi di destinazione:</target>
......@@ -557,11 +572,6 @@
<target state="translated">Usa la modalità di compatibilità di .editorconfig (richiede il riavvio)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Usa colori migliorati per C# e Basic</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Usa il corpo dell'espressione per le espressioni lambda</target>
......@@ -587,6 +597,11 @@
<target state="translated">Il valore restituito dalla chiamata viene ignorato in modo implicito</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">È stato notato che '{0}' è stato sospeso. Reimpostare i mapping dei tasti per continuare a esplorare e a eseguire il refactoring.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">依存を計算しています...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">分類</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">'{0}' のコード分析が完了しました。</target>
......@@ -117,11 +112,26 @@
<target state="translated">現在のドキュメント</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">要素が有効ではありません。</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">ソリューション全体</target>
......@@ -527,6 +537,11 @@
<target state="translated">入力候補一覧の表示</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">ターゲット名前空間:</target>
......@@ -557,11 +572,6 @@
<target state="translated">.editorconfig 互換性モードを使用する (再起動が必要)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">C# および Basic 用に拡張された色を使用</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">ラムダに式本体を使用します</target>
......@@ -587,6 +597,11 @@
<target state="translated">呼び出しによって返された値が暗黙的に無視されます</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">'{0}' が中断されました。キーマップをリセットして、移動とリファクターを続行してください。</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">종속 항목을 계산하는 중...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">분류</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">'{0}'에 대한 코드 분석이 완료되었습니다.</target>
......@@ -117,11 +112,26 @@
<target state="translated">현재 문서</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">요소가 잘못되었습니다.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">전체 솔루션</target>
......@@ -527,6 +537,11 @@
<target state="translated">완성 목록 표시</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">대상 네임스페이스:</target>
......@@ -557,11 +572,6 @@
<target state="translated">.editorconfig 호환성 모드 사용(다시 시작해야 함)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">C# 및 Basic용 향상된 색 사용</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">람다에 식 본문 사용</target>
......@@ -587,6 +597,11 @@
<target state="translated">호출로 반환된 값은 암시적으로 무시됩니다.</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">'{0}'을(를) 일시 중단하신 것으로 보입니다. 계속 탐색하고 리팩터링하려면 키 매핑을 다시 설정하세요.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Obliczanie elementów zależnych...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Klasyfikacje</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Ukończono analizę kodu dla elementu „{0}”.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Bieżący dokument</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">Element jest nieprawidłowy.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Całe rozwiązanie</target>
......@@ -527,6 +537,11 @@
<target state="translated">Pokaż listę uzupełniania</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Docelowa przestrzeń nazw:</target>
......@@ -557,11 +572,6 @@
<target state="translated">Użyj trybu zgodności pliku editorconfig (wymaga ponownego uruchomienia)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Użyj kolorów rozszerzonych dla języków C# i Basic</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Użyj treści wyrażenia dla wyrażeń lambda</target>
......@@ -587,6 +597,11 @@
<target state="translated">Wartość zwracana przez wywołanie jest niejawnie ignorowana</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Zauważyliśmy, że element „{0}” został przez Ciebie wstrzymany. Zresetuj mapowanie klawiszy, aby kontynuować nawigowanie i refaktoryzację.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Calculando dependentes...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Classificações</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Análise de código concluída para '{0}'.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Documento atual</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">O elemento é inválido.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Solução Inteira</target>
......@@ -527,6 +537,11 @@
<target state="translated">Mostrar a lista de conclusão</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Namespace de Destino:</target>
......@@ -557,11 +572,6 @@
<target state="translated">Usar o modo de compatibilidade .editorconfig (exige reinicialização)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Usar cores aprimoradas para C# e Basic</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Usar o corpo da expressão para lambdas</target>
......@@ -587,6 +597,11 @@
<target state="translated">O valor retornado por chamada é implicitamente ignorado</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Notamos que você suspendeu '{0}'. Redefina os mapeamentos de teclas para continuar a navegar e refatorar.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Вычисление зависимостей…</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Классификации</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">Анализ кода для "{0}" выполнен.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Текущий документ</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">Элемент недопустим.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Все решение</target>
......@@ -527,6 +537,11 @@
<target state="translated">Показать список завершения</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Целевое пространство имен:</target>
......@@ -557,11 +572,6 @@
<target state="translated">Использовать режим совместимости с .editorconfig (требуется перезапуск)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">Использовать расширенные цвета для C# и Basic</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Использовать тело выражения для лямбда-выражений</target>
......@@ -587,6 +597,11 @@
<target state="translated">Значение, возвращаемое вызовом, неявным образом игнорируется.</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">Вы приостановили действие "{0}". Сбросьте назначения клавиш, чтобы продолжить работу и рефакторинг.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">Bağımlılar hesaplanıyor...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">Sınıflandırmalar</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">'{0}' için kod analizi tamamlandı.</target>
......@@ -117,11 +112,26 @@
<target state="translated">Geçerli belge</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">Öğe geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">Tüm çözüm</target>
......@@ -527,6 +537,11 @@
<target state="translated">Tamamlama listesini göster</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">Hedef Ad Alanı:</target>
......@@ -557,11 +572,6 @@
<target state="translated">.editorconfig uyumluluk modunu kullanın (yeniden başlatma gerektirir)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">C# ve Basic için gelişmiş renkleri kullan</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">Lambdalar için ifade gövdesi kullan</target>
......@@ -587,6 +597,11 @@
<target state="translated">Çağrı ile döndürülen değer örtük olarak yok sayıldı</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">'{0}' öğesini askıya aldığınızı fark ettik. Gezintiye ve yeniden düzenlemeye devam etmek için tuş eşlemelerini sıfırlayın.</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">正在计算依赖项...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">分类</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">“{0}”的代码分析已完成。</target>
......@@ -117,11 +112,26 @@
<target state="translated">当前文档</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">元素无效。</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">整个解决方案</target>
......@@ -527,6 +537,11 @@
<target state="translated">显示完成列表</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">目标命名空间:</target>
......@@ -557,11 +572,6 @@
<target state="translated">使用 .editorconfig 兼容模式(需要重启)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">对 C# 和 Basic 使用增强色</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">使用 lambdas 的表达式主体</target>
......@@ -587,6 +597,11 @@
<target state="translated">已隐式忽略调用所返回的值</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">我们注意到你挂起了“{0}”。请重置项映射以继续导航和重构。</target>
......
......@@ -82,11 +82,6 @@
<target state="translated">正在計算相依項...</target>
<note />
</trans-unit>
<trans-unit id="Classifications">
<source>Classifications</source>
<target state="translated">分類</target>
<note />
</trans-unit>
<trans-unit id="Code_analysis_completed_for_0">
<source>Code analysis completed for '{0}'.</source>
<target state="translated">'{0}' 的程式碼分析已完成。</target>
......@@ -117,11 +112,26 @@
<target state="translated">目前的文件</target>
<note />
</trans-unit>
<trans-unit id="Editor_Color_Scheme">
<source>Editor Color Scheme</source>
<target state="new">Editor Color Scheme</target>
<note />
</trans-unit>
<trans-unit id="Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page">
<source>Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</source>
<target state="new">Editor color scheme options are only available when using a color theme bundled with Visual Studio. The color theme can be configured from the Environment &gt; General options page.</target>
<note />
</trans-unit>
<trans-unit id="Element_is_not_valid">
<source>Element is not valid.</source>
<target state="translated">元素無效。</target>
<note />
</trans-unit>
<trans-unit id="Enhanced">
<source>Enhanced</source>
<target state="new">Enhanced</target>
<note />
</trans-unit>
<trans-unit id="Entire_solution">
<source>Entire solution</source>
<target state="translated">整個解決方案</target>
......@@ -527,6 +537,11 @@
<target state="translated">顯示自動完成清單</target>
<note />
</trans-unit>
<trans-unit id="Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations">
<source>Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</source>
<target state="new">Some color scheme colors are being overridden by changes made in the Environment &gt; Fonts and Colors options page. Choose `Use Defaults` in the Fonts and Colors page to revert all customizations.</target>
<note />
</trans-unit>
<trans-unit id="Target_Namespace_colon">
<source>Target Namespace:</source>
<target state="translated">目標命名空間:</target>
......@@ -557,11 +572,6 @@
<target state="translated">使用 .editorconfig 相容性模式 (需要重新啟動)</target>
<note />
</trans-unit>
<trans-unit id="Use_enhanced_colors_for_C_and_Basic">
<source>Use enhanced colors for C# and Basic</source>
<target state="translated">使用 C# 和 Basic 的進階色彩</target>
<note />
</trans-unit>
<trans-unit id="Use_expression_body_for_lambdas">
<source>Use expression body for lambdas</source>
<target state="translated">使用 lambda 的運算式主體</target>
......@@ -587,6 +597,11 @@
<target state="translated">明確地忽略引動過程傳回的值</target>
<note />
</trans-unit>
<trans-unit id="Visual_Studio_2017">
<source>Visual Studio 2017</source>
<target state="new">Visual Studio 2017</target>
<note />
</trans-unit>
<trans-unit id="We_notice_you_suspended_0_Reset_keymappings_to_continue_to_navigate_and_refactor">
<source>We notice you suspended '{0}'. Reset keymappings to continue to navigate and refactor.</source>
<target state="translated">我們發現您暫止了 '{0}'。重設按鍵對應以繼續巡覽和重構。</target>
......
......@@ -54,6 +54,11 @@ private void InitializeStyles()
radioButtonStyle.Setters.Add(new Setter(RadioButton.MarginProperty, new Thickness() { Bottom = 7 }));
radioButtonStyle.Setters.Add(new Setter(RadioButton.ForegroundProperty, new DynamicResourceExtension(SystemColors.WindowTextBrushKey)));
Resources.Add(typeof(RadioButton), radioButtonStyle);
var comboBoxStyle = new System.Windows.Style(typeof(ComboBox));
comboBoxStyle.Setters.Add(new Setter(ComboBox.MarginProperty, new Thickness() { Bottom = 7 }));
comboBoxStyle.Setters.Add(new Setter(ComboBox.ForegroundProperty, new DynamicResourceExtension(SystemColors.WindowTextBrushKey)));
Resources.Add(typeof(ComboBox), comboBoxStyle);
}
protected void BindToOption(CheckBox checkbox, Option<bool> optionKey)
......@@ -69,38 +74,37 @@ protected void BindToOption(CheckBox checkbox, Option<bool> optionKey)
_bindingExpressions.Add(bindingExpression);
}
protected void BindToOption(CheckBox checkbox, Option<int> optionKey)
protected void BindToOption(CheckBox checkbox, PerLanguageOption<bool> optionKey, string languageName)
{
var binding = new Binding()
{
Source = new OptionBinding<int>(OptionStore, optionKey),
Source = new PerLanguageOptionBinding<bool>(OptionStore, optionKey, languageName),
Path = new PropertyPath("Value"),
UpdateSourceTrigger = UpdateSourceTrigger.Default,
Converter = new CheckBoxCheckedToIntConverter(),
UpdateSourceTrigger = UpdateSourceTrigger.Default
};
var bindingExpression = checkbox.SetBinding(CheckBox.IsCheckedProperty, binding);
_bindingExpressions.Add(bindingExpression);
}
protected void BindToOption(CheckBox checkbox, PerLanguageOption<bool> optionKey, string languageName)
protected void BindToOption(TextBox textBox, Option<int> optionKey)
{
var binding = new Binding()
{
Source = new PerLanguageOptionBinding<bool>(OptionStore, optionKey, languageName),
Source = new OptionBinding<int>(OptionStore, optionKey),
Path = new PropertyPath("Value"),
UpdateSourceTrigger = UpdateSourceTrigger.Default
};
var bindingExpression = checkbox.SetBinding(CheckBox.IsCheckedProperty, binding);
var bindingExpression = textBox.SetBinding(TextBox.TextProperty, binding);
_bindingExpressions.Add(bindingExpression);
}
protected void BindToOption(TextBox textBox, Option<int> optionKey)
protected void BindToOption(TextBox textBox, PerLanguageOption<int> optionKey, string languageName)
{
var binding = new Binding()
{
Source = new OptionBinding<int>(OptionStore, optionKey),
Source = new PerLanguageOptionBinding<int>(OptionStore, optionKey, languageName),
Path = new PropertyPath("Value"),
UpdateSourceTrigger = UpdateSourceTrigger.Default
};
......@@ -109,16 +113,31 @@ protected void BindToOption(TextBox textBox, Option<int> optionKey)
_bindingExpressions.Add(bindingExpression);
}
protected void BindToOption(TextBox textBox, PerLanguageOption<int> optionKey, string languageName)
protected void BindToOption<T>(ComboBox comboBox, Option<T> optionKey)
{
var binding = new Binding()
{
Source = new PerLanguageOptionBinding<int>(OptionStore, optionKey, languageName),
Source = new OptionBinding<T>(OptionStore, optionKey),
Path = new PropertyPath("Value"),
UpdateSourceTrigger = UpdateSourceTrigger.Default
Converter = new ComboBoxItemTagToIndexConverter(),
ConverterParameter = comboBox
};
var bindingExpression = textBox.SetBinding(TextBox.TextProperty, binding);
var bindingExpression = comboBox.SetBinding(ComboBox.SelectedIndexProperty, binding);
_bindingExpressions.Add(bindingExpression);
}
protected void BindToOption<T>(ComboBox comboBox, PerLanguageOption<T> optionKey, string languageName)
{
var binding = new Binding()
{
Source = new PerLanguageOptionBinding<T>(OptionStore, optionKey, languageName),
Path = new PropertyPath("Value"),
Converter = new ComboBoxItemTagToIndexConverter(),
ConverterParameter = comboBox
};
var bindingExpression = comboBox.SetBinding(ComboBox.SelectedIndexProperty, binding);
_bindingExpressions.Add(bindingExpression);
}
......@@ -169,18 +188,35 @@ public class RadioButtonCheckedConverter : IValueConverter
}
}
public class CheckBoxCheckedToIntConverter : IValueConverter
public class ComboBoxItemTagToIndexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return !value.Equals(-1);
var comboBox = (ComboBox)parameter;
for (var index = 0; index < comboBox.Items.Count; index++)
{
var item = (ComboBoxItem)comboBox.Items[index];
if (item.Tag.Equals(value))
{
return index;
}
}
return -1;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(true) ? 1 : -1;
var index = (int)value;
if (index == -1)
{
return null;
}
var comboBox = (ComboBox)parameter;
var item = (ComboBoxItem)comboBox.Items[index];
return item.Tag;
}
}
}
......@@ -3,6 +3,7 @@
' See the LICENSE file in the project root for more information.
Imports System.Runtime.InteropServices
Imports Microsoft.VisualStudio.ComponentModelHost
Imports Microsoft.VisualStudio.LanguageServices.Implementation.Options
Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Options
......@@ -11,7 +12,9 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Options
Inherits AbstractOptionPage
Protected Overrides Function CreateOptionPage(serviceProvider As IServiceProvider, optionStore As OptionStore) As AbstractOptionPageControl
Return New AdvancedOptionPageControl(optionStore)
Dim componentModel = DirectCast(Me.Site.GetService(GetType(SComponentModel)), IComponentModel)
Return New AdvancedOptionPageControl(optionStore, componentModel)
End Function
End Class
End Namespace
......@@ -130,11 +130,21 @@
</StackPanel>
</GroupBox>
<GroupBox x:Uid="ClassificationsGroupBox"
Header="{x:Static local:AdvancedOptionPageStrings.Option_Classifications}">
<GroupBox x:Uid="EditorColorSchemeGroupBox"
Header="{x:Static local:AdvancedOptionPageStrings.Option_Editor_Color_Scheme}">
<StackPanel>
<CheckBox x:Name="Use_enhanced_colors"
Content="{x:Static local:AdvancedOptionPageStrings.Option_Use_enhanced_colors_for_C_and_Basic}" />
<ComboBox x:Name="Editor_color_scheme" IsEditable="false">
<ComboBoxItem Content="{x:Static local:AdvancedOptionPageStrings.Option_Color_Scheme_Enhanced}" Tag="{x:Static local:AdvancedOptionPageStrings.Color_Scheme_Enhanced_Tag}" />
<ComboBoxItem Content="{x:Static local:AdvancedOptionPageStrings.Option_Color_Scheme_VisualStudio2017}" Tag="{x:Static local:AdvancedOptionPageStrings.Color_Scheme_VisualStudio2017_Tag}" />
</ComboBox>
<TextBlock x:Name="Customized_Theme_Warning"
TextWrapping="WrapWithOverflow"
Margin="0, 0, 0, 8"
Text="{x:Static local:AdvancedOptionPageStrings.Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations}"/>
<TextBlock x:Name="Custom_VS_Theme_Warning"
TextWrapping="WrapWithOverflow"
Margin="0, 0, 0, 8"
Text="{x:Static local:AdvancedOptionPageStrings.Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page}"/>
</StackPanel>
</GroupBox>
......
......@@ -2,8 +2,11 @@
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
Imports System.Windows
Imports System.Windows.Media
Imports Microsoft.CodeAnalysis
Imports Microsoft.CodeAnalysis.Editing
Imports Microsoft.CodeAnalysis.Editor.Options
Imports Microsoft.CodeAnalysis.Editor.Shared.Options
Imports Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions
Imports Microsoft.CodeAnalysis.ExtractMethod
......@@ -14,14 +17,20 @@ Imports Microsoft.CodeAnalysis.SolutionCrawler
Imports Microsoft.CodeAnalysis.Structure
Imports Microsoft.CodeAnalysis.SymbolSearch
Imports Microsoft.CodeAnalysis.ValidateFormatString
Imports Microsoft.VisualStudio.ComponentModelHost
Imports Microsoft.VisualStudio.LanguageServices.ColorSchemes
Imports Microsoft.VisualStudio.LanguageServices.Implementation
Imports Microsoft.VisualStudio.LanguageServices.Implementation.Options
Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Options
Friend Class AdvancedOptionPageControl
Public Sub New(optionStore As OptionStore)
Private _colorSchemeApplier As ColorSchemeApplier
Public Sub New(optionStore As OptionStore, componentModel As IComponentModel)
MyBase.New(optionStore)
_colorSchemeApplier = componentModel.GetService(Of ColorSchemeApplier)()
InitializeComponent()
BindToOption(Background_analysis_scope_active_file, SolutionCrawlerOptions.BackgroundAnalysisScopeOption, BackgroundAnalysisScope.ActiveFile, LanguageNames.VisualBasic)
......@@ -71,7 +80,20 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Options
BindToOption(Highlight_related_components_under_cursor, RegularExpressionsOptions.HighlightRelatedRegexComponentsUnderCursor, LanguageNames.VisualBasic)
BindToOption(Show_completion_list, RegularExpressionsOptions.ProvideRegexCompletions, LanguageNames.VisualBasic)
BindToOption(Use_enhanced_colors, FeatureOnOffOptions.UseEnhancedColors)
BindToOption(Editor_color_scheme, ColorSchemeOptions.ColorScheme)
End Sub
' Since this dialog is constructed once for the lifetime of the application and VS Theme can be changed after the application has started,
' we need to update the visibility of our combobox and warnings based on the current VS theme before being rendered.
Friend Overrides Sub OnLoad()
Dim isSupportedTheme = _colorSchemeApplier.IsSupportedTheme()
Dim isCustomized = _colorSchemeApplier.IsThemeCustomized()
Editor_color_scheme.Visibility = If(isSupportedTheme, Visibility.Visible, Visibility.Collapsed)
Customized_Theme_Warning.Visibility = If(isSupportedTheme AndAlso isCustomized, Visibility.Visible, Visibility.Collapsed)
Custom_VS_Theme_Warning.Visibility = If(isSupportedTheme, Visibility.Collapsed, Visibility.Visible)
MyBase.OnLoad()
End Sub
End Class
End Namespace
......@@ -2,6 +2,8 @@
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
Imports Microsoft.CodeAnalysis.Editor.ColorSchemes
Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Options
Friend Module AdvancedOptionPageStrings
......@@ -231,10 +233,25 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Options
Public ReadOnly Property Option_Show_completion_list As String =
ServicesVSResources.Show_completion_list
Public ReadOnly Property Option_Classifications As String =
ServicesVSResources.Classifications
Public ReadOnly Property Option_Editor_Color_Scheme As String =
ServicesVSResources.Editor_Color_Scheme
Public ReadOnly Property Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page As String =
ServicesVSResources.Editor_color_scheme_options_are_only_available_when_using_a_color_theme_bundled_with_Visual_Studio_The_color_theme_can_be_configured_from_the_Environment_General_options_page
Public ReadOnly Property Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations As String =
ServicesVSResources.Some_color_scheme_colors_are_being_overridden_by_changes_made_in_the_Environment_Fonts_and_Colors_options_page_Choose_Use_Defaults_in_the_Fonts_and_Colors_page_to_revert_all_customizations
Public ReadOnly Property Option_Color_Scheme_Enhanced As String =
ServicesVSResources.Enhanced
Public ReadOnly Property Option_Color_Scheme_VisualStudio2017 As String =
ServicesVSResources.Visual_Studio_2017
Public ReadOnly Property Color_Scheme_Enhanced_Tag As SchemeName =
SchemeName.Enhanced
Public ReadOnly Property Option_Use_enhanced_colors_for_C_and_Basic As String =
ServicesVSResources.Use_enhanced_colors_for_C_and_Basic
Public ReadOnly Property Color_Scheme_VisualStudio2017_Tag As SchemeName =
SchemeName.VisualStudio2017
End Module
End Namespace
......@@ -128,7 +128,7 @@
<value>Visual Basic Editor</value>
</data>
<data name="10160" xml:space="preserve">
<value>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</value>
<value>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</value>
<comment>Advanced options page keywords</comment>
</data>
<data name="102" xml:space="preserve">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Automatické vložení koncových konstruktorů;Změnit nastavení přehledného výpisu;Změnit režim sbalení;Automatické vkládání členů Interface a MustOverride;Zobrazit nebo skrýt oddělovače řádků procedur;Zapnout nebo vypnout návrhy oprav;Zapnout nebo vypnout zvýrazňování odkazů a klíčových slov;Regex;Obarvit regulární výrazy;Zvýrazňovat související komponenty pod kurzorem;Nahlásit neplatné regulární výrazy;reg. výr.;regulární výraz;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Automatické vložení koncových konstruktorů;Změnit nastavení přehledného výpisu;Změnit režim sbalení;Automatické vkládání členů Interface a MustOverride;Zobrazit nebo skrýt oddělovače řádků procedur;Zapnout nebo vypnout návrhy oprav;Zapnout nebo vypnout zvýrazňování odkazů a klíčových slov;Regex;Obarvit regulární výrazy;Zvýrazňovat související komponenty pod kurzorem;Nahlásit neplatné regulární výrazy;reg. výr.;regulární výraz;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Endkonstrukte automatisch einfügen;Einstellungen für automatische Strukturierung und Einrückung ändern;Gliederungsmodus ändern;Schnittstellen- und MustOverride-Member automatisch einfügen;Zeilentrennzeichen zwischen Prozeduren anzeigen oder ausblenden;Vorschläge für Fehlerkorrektur ein- oder ausschalten;Markierung von Verweisen und Schlüsselwörtern ein- oder ausschalten;Regex;Reguläre Ausdrücke farbig markieren;Verwandte Komponenten unter Cursor hervorheben;Ungültige reguläre Ausdrücke melden;regex;regulärer Ausdruck;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Endkonstrukte automatisch einfügen;Einstellungen für automatische Strukturierung und Einrückung ändern;Gliederungsmodus ändern;Schnittstellen- und MustOverride-Member automatisch einfügen;Zeilentrennzeichen zwischen Prozeduren anzeigen oder ausblenden;Vorschläge für Fehlerkorrektur ein- oder ausschalten;Markierung von Verweisen und Schlüsselwörtern ein- oder ausschalten;Regex;Reguläre Ausdrücke farbig markieren;Verwandte Komponenten unter Cursor hervorheben;Ungültige reguläre Ausdrücke melden;regex;regulärer Ausdruck;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Inserción automática de construcciones End;Cambiar configuración de la lista descriptiva;Cambiar modo de esquematización;Inserción automática de miembros Interface y MustOverride;Mostrar u ocultar separadores de línea de procedimientos;Activar o desactivar sugerencias de corrección de errores;Activar o desactivar resaltado de referencias y palabras clave;Regex;Colorear expresiones regulares;Resaltar componentes relacionados bajo el cursor;Informar sobre expresiones regulares no válidas;regex;expresión regular;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Inserción automática de construcciones End;Cambiar configuración de la lista descriptiva;Cambiar modo de esquematización;Inserción automática de miembros Interface y MustOverride;Mostrar u ocultar separadores de línea de procedimientos;Activar o desactivar sugerencias de corrección de errores;Activar o desactivar resaltado de referencias y palabras clave;Regex;Colorear expresiones regulares;Resaltar componentes relacionados bajo el cursor;Informar sobre expresiones regulares no válidas;regex;expresión regular;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Insertion automatique des constructions de fin;Changer les paramètres de listing en mode Pretty;Changer le mode Plan;Insertion automatique des membres Interface et MustOverride;Afficher ou masquer les séparateurs de ligne de procédure;Activer ou désactiver les suggestions de correction d'erreurs;Activer ou désactiver la mise en surbrillance des références et des mots clés;Regex;Mettre en couleurs les expressions régulières;Mettre en surbrillance les composants connexes sous le curseur;Signaler les expressions régulières non valides;regex;expression régulière;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Insertion automatique des constructions de fin;Changer les paramètres de listing en mode Pretty;Changer le mode Plan;Insertion automatique des membres Interface et MustOverride;Afficher ou masquer les séparateurs de ligne de procédure;Activer ou désactiver les suggestions de correction d'erreurs;Activer ou désactiver la mise en surbrillance des références et des mots clés;Regex;Mettre en couleurs les expressions régulières;Mettre en surbrillance les composants connexes sous le curseur;Signaler les expressions régulières non valides;regex;expression régulière;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Inserimento automatico di costrutti End;Modifica impostazioni di riformattazione;Modifica modalità struttura;Inserimento automatico di membri Interface e MustOverride;Mostra o nascondi separatori di riga routine;Attiva o disattiva i suggerimenti per la correzione degli errori;Attiva o disattiva evidenziazione di riferimenti e parole chiave;Regex;Colora espressioni regolari;Evidenzia componenti correlati sotto il cursore;Segnala espressioni regolari non valide;regex;espressione regolare;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Inserimento automatico di costrutti End;Modifica impostazioni di riformattazione;Modifica modalità struttura;Inserimento automatico di membri Interface e MustOverride;Mostra o nascondi separatori di riga routine;Attiva o disattiva i suggerimenti per la correzione degli errori;Attiva o disattiva evidenziazione di riferimenti e parole chiave;Regex;Colora espressioni regolari;Evidenzia componenti correlati sotto il cursore;Segnala espressioni regolari non valide;regex;espressione regolare;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">コンストラクトの終端の自動挿入;再フォーマット設定の変更;アウトライン モードの変更;Interface と MustOverride メンバーの自動挿入;プロシージャ行の区切り記号の表示/非表示;エラー修正候補のオン/オフの切り替え;参照とキーワードの強調表示のオン/オフの切り替え;Regex;正規表現の色付け;カーソルの下の関連コンポーネントのハイライト;無効な正規表現の報告;Regex;正規表現;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">コンストラクトの終端の自動挿入;再フォーマット設定の変更;アウトライン モードの変更;Interface と MustOverride メンバーの自動挿入;プロシージャ行の区切り記号の表示/非表示;エラー修正候補のオン/オフの切り替え;参照とキーワードの強調表示のオン/オフの切り替え;Regex;正規表現の色付け;カーソルの下の関連コンポーネントのハイライト;無効な正規表現の報告;Regex;正規表現;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">맺음 구문 자동 삽입;자동 서식 지정 설정 변경;개요 모드 변경;인터페이스 및 MustOverride 멤버 자동 삽입;프로시저 줄 구분선 표시/숨기기;오류 수정 제안 설정/해제;참조 및 키워드의 강조 표시 설정/해제;Regex;정규식 색 입히기;커서 아래에 관련 구성 요소 강조 표시;잘못된 정규식 보고;regex;정규식</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">맺음 구문 자동 삽입;자동 서식 지정 설정 변경;개요 모드 변경;인터페이스 및 MustOverride 멤버 자동 삽입;프로시저 줄 구분선 표시/숨기기;오류 수정 제안 설정/해제;참조 및 키워드의 강조 표시 설정/해제;Regex;정규식 색 입히기;커서 아래에 관련 구성 요소 강조 표시;잘못된 정규식 보고;regex;정규식</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Automatyczne wstawianie konstrukcji końcowych;Zmień ustawienia formatowania kodu;Zmień tryb konspektu;Automatyczne wstawianie składowych Interface i MustOverride;Pokaż lub ukryj separatory wierszy procedury;Włącz lub wyłącz sugestie dotyczące poprawy błędów;Włącz lub wyłącz wyróżnianie odwołań i słów kluczowych;Wyrażenie regularne;Koloruj wyrażenia regularne;Wyróżnij pokrewne składniki wskazane przez kursor;Zgłaszaj nieprawidłowe wyrażenia regularne;wyrażenie regularne;wyrażenie regularne</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Automatyczne wstawianie konstrukcji końcowych;Zmień ustawienia formatowania kodu;Zmień tryb konspektu;Automatyczne wstawianie składowych Interface i MustOverride;Pokaż lub ukryj separatory wierszy procedury;Włącz lub wyłącz sugestie dotyczące poprawy błędów;Włącz lub wyłącz wyróżnianie odwołań i słów kluczowych;Wyrażenie regularne;Koloruj wyrażenia regularne;Wyróżnij pokrewne składniki wskazane przez kursor;Zgłaszaj nieprawidłowe wyrażenia regularne;wyrażenie regularne;wyrażenie regularne</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Inserção automática de constructos finais;Alterar as configurações de reformatação automática;Alterar o modo de estrutura de tópicos;Inserção automática de membros de Interface e de MustOverride;Mostrar ou ocultar separadores de linha de procedimento;Habilitar ou desabilitar sugestões para correção de erros;Habilitar ou desabilitar o realce de referências e palavras-chave;Regex;Colorir expressões regulares;Realçar os componentes relacionados sob o cursor;Relatar expressões regulares inválidas;regex;expressão regular;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Inserção automática de constructos finais;Alterar as configurações de reformatação automática;Alterar o modo de estrutura de tópicos;Inserção automática de membros de Interface e de MustOverride;Mostrar ou ocultar separadores de linha de procedimento;Habilitar ou desabilitar sugestões para correção de erros;Habilitar ou desabilitar o realce de referências e palavras-chave;Regex;Colorir expressões regulares;Realçar os componentes relacionados sob o cursor;Relatar expressões regulares inválidas;regex;expressão regular;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Автоматическая вставка конечных конструкций;Изменение параметров автоматического форматирования;Изменение режима структуры;Автоматическая вставка интерфейса и членов MustOverride;Отображение или скрытие разделителей строк для процедуры;Включение или выключение предложения об исправлении ошибок;Включение или выключение выделения ссылок и ключевых слов;Регулярные выражения;Выделение регулярных выражений цветом;Выделение связанных компонентов под курсором;Выделение недопустимых регулярных выражений;регулярное выражение;регулярное выражение;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Автоматическая вставка конечных конструкций;Изменение параметров автоматического форматирования;Изменение режима структуры;Автоматическая вставка интерфейса и членов MustOverride;Отображение или скрытие разделителей строк для процедуры;Включение или выключение предложения об исправлении ошибок;Включение или выключение выделения ссылок и ключевых слов;Регулярные выражения;Выделение регулярных выражений цветом;Выделение связанных компонентов под курсором;Выделение недопустимых регулярных выражений;регулярное выражение;регулярное выражение;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">Bitirme yapılarının otomatik olarak eklenmesi;Düzgün listeleme ayarlarını değiştir;Ana hat modunu değiştir;Arabirim ve MustOverride üyelerinin otomatik olarak eklenmesi;Yordam satır ayıraçlarını göster veya gizle;Hata düzeltme önerilerini aç veya kapat;Başvuruları ve anahtar sözcükleri vurgulamayı aç veya kapat;Normal ifade;Normal ifadeleri renklendir;İmlecin altında ilgili bileşenleri vurgula;Geçersiz normal ifadeleri bildir;normal ifade;normal ifade;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">Bitirme yapılarının otomatik olarak eklenmesi;Düzgün listeleme ayarlarını değiştir;Ana hat modunu değiştir;Arabirim ve MustOverride üyelerinin otomatik olarak eklenmesi;Yordam satır ayıraçlarını göster veya gizle;Hata düzeltme önerilerini aç veya kapat;Başvuruları ve anahtar sözcükleri vurgulamayı aç veya kapat;Normal ifade;Normal ifadeleri renklendir;İmlecin altında ilgili bileşenleri vurgula;Geçersiz normal ifadeleri bildir;normal ifade;normal ifade;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">自动插入 End 构造;更改整齐排列设置;更改大纲模式;自动插入 Interface 和 MustOverride 成员;显示或隐藏过程行分隔符;打开或关闭错误纠正建议;打开或关闭引用和关键字的突出显示;正则表达式;对正则表达式着色;突出显示光标下的相关部分;报告无效正则表达式;regex;正则表达式;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">自动插入 End 构造;更改整齐排列设置;更改大纲模式;自动插入 Interface 和 MustOverride 成员;显示或隐藏过程行分隔符;打开或关闭错误纠正建议;打开或关闭引用和关键字的突出显示;正则表达式;对正则表达式着色;突出显示光标下的相关部分;报告无效正则表达式;regex;正则表达式;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
......@@ -18,8 +18,8 @@
<note />
</trans-unit>
<trans-unit id="10160">
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;</source>
<target state="translated">自動插入 End 建構;變更美化排列設定;變更大綱模式;自動插入 Interface 和 MustOverride 成員;顯示或隱藏程序行分隔符號;開啟或關閉錯誤修正建議;開啟或關閉參考及關鍵字的醒目提示;Regex;以顏色標示規則運算式;為資料指標下的相關元件加上醒目提示;回報無效的規則運算式;regex;規則運算式;</target>
<source>Automatic insertion of end constructs;Change pretty listing settings;Change outlining mode;Automatic insertion of Interface and MustOverride members;Show or hide procedure line separators;Turn error correction suggestions on or off;Turn highlighting of references and keywords on or off;Regex;Colorize regular expressions;Highlight related components under cursor;Report invalid regular expressions;regex;regular expression;Use enhanced colors;Editor Color Scheme;</source>
<target state="needs-review-translation">自動插入 End 建構;變更美化排列設定;變更大綱模式;自動插入 Interface 和 MustOverride 成員;顯示或隱藏程序行分隔符號;開啟或關閉錯誤修正建議;開啟或關閉參考及關鍵字的醒目提示;Regex;以顏色標示規則運算式;為資料指標下的相關元件加上醒目提示;回報無效的規則運算式;regex;規則運算式;</target>
<note>Advanced options page keywords</note>
</trans-unit>
<trans-unit id="102">
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册