Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7840cbe

Browse files
cartermpKevinRansom
authored andcommitted
Add configurable enter key settings for IntelliSense (dotnet#5530)
* Add configurable enter key behavior* Fix unit test build
1 parent85a4755 commit7840cbe

20 files changed

+383
-31
lines changed

‎vsintegration/src/FSharp.Editor/Completion/CompletionService.fs‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,19 @@ type internal FSharpCompletionService
3030
Completion.Create("""\s*#r\s+(@?"*(?<literal>"[^"]*"?))""",[".dll";".exe"], useIncludeDirectives=true)
3131
Completion.Create("""\s*#I\s+(@?"*(?<literal>"[^"]*"?))""",["\x00"], useIncludeDirectives=false)]))
3232

33-
letcompletionRules=
33+
overridethis.Language= FSharpConstants.FSharpLanguageName
34+
overridethis.GetBuiltInProviders()= builtInProviders
35+
overridethis.GetRules()=
36+
letenterKeyRule=
37+
match Settings.IntelliSense.EnterKeySettingwith
38+
| NeverNewline-> EnterKeyRule.Never
39+
| NewlineOnCompleteWord-> EnterKeyRule.AfterFullyTypedWord
40+
| AlwaysNewline-> EnterKeyRule.Always
41+
3442
CompletionRules.Default
3543
.WithDismissIfEmpty(true)
3644
.WithDismissIfLastCharacterDeleted(true)
37-
.WithDefaultEnterKeyRule(EnterKeyRule.Never)
38-
39-
overridethis.Language= FSharpConstants.FSharpLanguageName
40-
overridethis.GetBuiltInProviders()= builtInProviders
41-
overridethis.GetRules()= completionRules
45+
.WithDefaultEnterKeyRule(enterKeyRule)
4246

4347
[<Shared>]
4448
[<ExportLanguageServiceFactory(typeof<CompletionService>, FSharpConstants.FSharpLanguageName)>]

‎vsintegration/src/FSharp.Editor/Options/EditorOptions.fs‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,18 @@ module DefaultTuning =
1818
/// Re-tokenizing is fast so we don't need to save this data long.
1919
letPerDocumentSavedDataSlidingWindow= TimeSpan(0,0,10)(* seconds*)
2020

21+
typeEnterKeySetting=
22+
| NeverNewline
23+
| NewlineOnCompleteWord
24+
| AlwaysNewline
25+
2126
// CLIMutable to make the record work also as a view model
2227
[<CLIMutable>]
2328
typeIntelliSenseOptions=
2429
{ ShowAfterCharIsTyped:bool
2530
ShowAfterCharIsDeleted:bool
26-
ShowAllSymbols:bool}
31+
ShowAllSymbols:bool
32+
EnterKeySetting:EnterKeySetting}
2733

2834
[<RequireQualifiedAccess>]
2935
typeQuickInfoUnderlineStyle= Dot| Dash| Solid
@@ -66,7 +72,8 @@ type internal Settings [<ImportingConstructor>](store: SettingsStore) =
6672
store.RegisterDefault
6773
{ ShowAfterCharIsTyped=true
6874
ShowAfterCharIsDeleted=true
69-
ShowAllSymbols=true}
75+
ShowAllSymbols=true
76+
EnterKeySetting= EnterKeySetting.NeverNewline}
7077

7178
store.RegisterDefault
7279
{ DisplayLinks=true
@@ -113,6 +120,12 @@ module internal OptionsUI =
113120
overridethis.CreateView()=
114121
letview= IntelliSenseOptionControl()
115122
view.charTyped.Unchecked.Add<|fun _-> view.charDeleted.IsChecked<- System.Nullablefalse
123+
124+
letpath="EnterKeySetting"
125+
bindRadioButton view.nevernewline path EnterKeySetting.NeverNewline
126+
bindRadioButton view.newlinecompleteline path EnterKeySetting.NewlineOnCompleteWord
127+
bindRadioButton view.alwaysnewline path EnterKeySetting.AlwaysNewline
128+
116129
upcast view
117130

118131
[<Guid(Guids.quickInfoOptionPageIdString)>]

‎vsintegration/src/FSharp.UIResources/IntelliSenseOptionControl.xaml‎

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,36 @@
77
xmlns:local="clr-namespace:Microsoft.VisualStudio.FSharp.UIResources"
88
mc:Ignorable="d"
99
d:DesignHeight="300"d:DesignWidth="400">
10-
<UserControl.Resources>
11-
<ResourceDictionary>
12-
<ResourceDictionary.MergedDictionaries>
13-
<ResourceDictionarySource="OptionPageStyle.xaml"/>
14-
</ResourceDictionary.MergedDictionaries>
15-
</ResourceDictionary>
16-
</UserControl.Resources>
17-
<Grid>
18-
<ScrollViewerVerticalScrollBarVisibility="Auto">
19-
<StackPanel>
20-
<GroupBoxHeader="{x:Static local:Strings.Completion_Lists}">
21-
<StackPanel>
22-
<CheckBoxx:Name="charTyped"IsChecked="{Binding ShowAfterCharIsTyped}"
10+
<UserControl.Resources>
11+
<ResourceDictionary>
12+
<ResourceDictionary.MergedDictionaries>
13+
<ResourceDictionarySource="OptionPageStyle.xaml"/>
14+
</ResourceDictionary.MergedDictionaries>
15+
</ResourceDictionary>
16+
</UserControl.Resources>
17+
<Grid>
18+
<ScrollViewerVerticalScrollBarVisibility="Auto">
19+
<StackPanel>
20+
<GroupBoxHeader="{x:Static local:Strings.Completion_Lists}">
21+
<StackPanel>
22+
<CheckBoxx:Name="charTyped"IsChecked="{Binding ShowAfterCharIsTyped}"
2323
Content="{x:Static local:Strings.Show_completion_list_after_a_character_is_typed}"/>
24-
<StackPanelMargin="15 0 0 0">
25-
<CheckBoxx:Name="charDeleted"IsEnabled="{Binding IsChecked, ElementName=charTyped}"IsChecked="{Binding ShowAfterCharIsDeleted}"
24+
<StackPanelMargin="15 0 0 0">
25+
<CheckBoxx:Name="charDeleted"IsEnabled="{Binding IsChecked, ElementName=charTyped}"IsChecked="{Binding ShowAfterCharIsDeleted}"
2626
Content="{x:Static local:Strings.Show_completion_list_after_a_character_is_deleted}"/>
27-
</StackPanel>
28-
<CheckBoxx:Name="showAllSymbols"IsChecked="{Binding ShowAllSymbols}"
27+
</StackPanel>
28+
<CheckBoxx:Name="showAllSymbols"IsChecked="{Binding ShowAllSymbols}"
2929
Content="{x:Static local:Strings.Show_all_symbols}"/>
30-
</StackPanel>
31-
</GroupBox>
30+
</StackPanel>
31+
</GroupBox>
32+
<GroupBoxHeader="{x:Static local:Strings.Enter_Key_Rule}">
33+
<StackPanel>
34+
<RadioButtonx:Name="nevernewline"Content="{x:Static local:Strings.Enter_key_never}"/>
35+
<RadioButtonx:Name="newlinecompleteline"Content="{x:Static local:Strings.Enter_key_only}"/>
36+
<RadioButtonx:Name="alwaysnewline"Content="{x:Static local:Strings.Enter_key_always}"/>
37+
</StackPanel>
38+
</GroupBox>
3239
</StackPanel>
33-
</ScrollViewer>
34-
</Grid>
40+
</ScrollViewer>
41+
</Grid>
3542
</UserControl>

‎vsintegration/src/FSharp.UIResources/Strings.Designer.cs‎

Lines changed: 37 additions & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎vsintegration/src/FSharp.UIResources/Strings.resx‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,4 +213,16 @@
213213
<dataname="Tooltip_project_check_cache_size"xml:space="preserve">
214214
<value>Project data is cached for IDE features. Higher values use more memory because more projects are cached. Tuning this value should not affect small or medium-sized solutions.</value>
215215
</data>
216+
<dataname="Enter_key_always"xml:space="preserve">
217+
<value>Always add new line on enter</value>
218+
</data>
219+
<dataname="Enter_key_never"xml:space="preserve">
220+
<value>Never add new line on enter</value>
221+
</data>
222+
<dataname="Enter_key_only"xml:space="preserve">
223+
<value>Only add new line on enter after end of fully typed word</value>
224+
</data>
225+
<dataname="Enter_Key_Rule"xml:space="preserve">
226+
<value>Enter key behavior</value>
227+
</data>
216228
</root>

‎vsintegration/src/FSharp.UIResources/xlf/Strings.cs.xlf‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,26 @@
162162
<targetstate="translated">Projektová data jsou uložená v mezipaměti pro funkce IDE. Vyšší hodnoty znamenají využití více paměti, protože je uloženo více projektů. Vyladění této hodnoty by nemělo mít vliv na malá a středně velká řešení.</target>
163163
<note />
164164
</trans-unit>
165+
<trans-unitid="Enter_key_always">
166+
<source>Always add new line on enter</source>
167+
<targetstate="new">Always add new line on enter</target>
168+
<note />
169+
</trans-unit>
170+
<trans-unitid="Enter_key_never">
171+
<source>Never add new line on enter</source>
172+
<targetstate="new">Never add new line on enter</target>
173+
<note />
174+
</trans-unit>
175+
<trans-unitid="Enter_key_only">
176+
<source>Only add new line on enter after end of fully typed word</source>
177+
<targetstate="new">Only add new line on enter after end of fully typed word</target>
178+
<note />
179+
</trans-unit>
180+
<trans-unitid="Enter_Key_Rule">
181+
<source>Enter key behavior</source>
182+
<targetstate="new">Enter key behavior</target>
183+
<note />
184+
</trans-unit>
165185
</body>
166186
</file>
167187
</xliff>

‎vsintegration/src/FSharp.UIResources/xlf/Strings.de.xlf‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,26 @@
162162
<targetstate="translated">Für IDE-Features werden Projektdaten zwischengespeichert. Bei höheren Werten wird mehr Arbeitsspeicher beansprucht, weil mehr Projekte zwischengespeichert werden. Die Optimierung dieses Werts besitzt keine Auswirkungen auf kleine oder mittelgroße Projektmappen.</target>
163163
<note />
164164
</trans-unit>
165+
<trans-unitid="Enter_key_always">
166+
<source>Always add new line on enter</source>
167+
<targetstate="new">Always add new line on enter</target>
168+
<note />
169+
</trans-unit>
170+
<trans-unitid="Enter_key_never">
171+
<source>Never add new line on enter</source>
172+
<targetstate="new">Never add new line on enter</target>
173+
<note />
174+
</trans-unit>
175+
<trans-unitid="Enter_key_only">
176+
<source>Only add new line on enter after end of fully typed word</source>
177+
<targetstate="new">Only add new line on enter after end of fully typed word</target>
178+
<note />
179+
</trans-unit>
180+
<trans-unitid="Enter_Key_Rule">
181+
<source>Enter key behavior</source>
182+
<targetstate="new">Enter key behavior</target>
183+
<note />
184+
</trans-unit>
165185
</body>
166186
</file>
167187
</xliff>

‎vsintegration/src/FSharp.UIResources/xlf/Strings.en.xlf‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,26 @@
162162
<targetstate="new">Project data is cached for IDE features. Higher values use more memory because more projects are cached. Tuning this value should not affect small or medium-sized solutions.</target>
163163
<note />
164164
</trans-unit>
165+
<trans-unitid="Enter_key_always">
166+
<source>Always add new line on enter</source>
167+
<targetstate="new">Always add new line on enter</target>
168+
<note />
169+
</trans-unit>
170+
<trans-unitid="Enter_key_never">
171+
<source>Never add new line on enter</source>
172+
<targetstate="new">Never add new line on enter</target>
173+
<note />
174+
</trans-unit>
175+
<trans-unitid="Enter_key_only">
176+
<source>Only add new line on enter after end of fully typed word</source>
177+
<targetstate="new">Only add new line on enter after end of fully typed word</target>
178+
<note />
179+
</trans-unit>
180+
<trans-unitid="Enter_Key_Rule">
181+
<source>Enter key behavior</source>
182+
<targetstate="new">Enter key behavior</target>
183+
<note />
184+
</trans-unit>
165185
</body>
166186
</file>
167187
</xliff>

‎vsintegration/src/FSharp.UIResources/xlf/Strings.es.xlf‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,26 @@
162162
<targetstate="translated">Los datos de proyecto se almacenan en caché para que funcionen las características del IDE. Los valores más altos utilizan más memoria porque se almacenan en caché más proyectos. El ajuste de este valor no debería afectar a soluciones de tamaño pequeño o medio.</target>
163163
<note />
164164
</trans-unit>
165+
<trans-unitid="Enter_key_always">
166+
<source>Always add new line on enter</source>
167+
<targetstate="new">Always add new line on enter</target>
168+
<note />
169+
</trans-unit>
170+
<trans-unitid="Enter_key_never">
171+
<source>Never add new line on enter</source>
172+
<targetstate="new">Never add new line on enter</target>
173+
<note />
174+
</trans-unit>
175+
<trans-unitid="Enter_key_only">
176+
<source>Only add new line on enter after end of fully typed word</source>
177+
<targetstate="new">Only add new line on enter after end of fully typed word</target>
178+
<note />
179+
</trans-unit>
180+
<trans-unitid="Enter_Key_Rule">
181+
<source>Enter key behavior</source>
182+
<targetstate="new">Enter key behavior</target>
183+
<note />
184+
</trans-unit>
165185
</body>
166186
</file>
167187
</xliff>

‎vsintegration/src/FSharp.UIResources/xlf/Strings.fr.xlf‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,26 @@
162162
<targetstate="translated">Les données de projet sont mises en cache pour les fonctionnalités de l'IDE. Les valeurs plus élevées utilisent plus de mémoire, car davantage de projets sont mis en cache. L'ajustement de cette valeur ne devrait pas affecter les petites ou moyennes solutions.</target>
163163
<note />
164164
</trans-unit>
165+
<trans-unitid="Enter_key_always">
166+
<source>Always add new line on enter</source>
167+
<targetstate="new">Always add new line on enter</target>
168+
<note />
169+
</trans-unit>
170+
<trans-unitid="Enter_key_never">
171+
<source>Never add new line on enter</source>
172+
<targetstate="new">Never add new line on enter</target>
173+
<note />
174+
</trans-unit>
175+
<trans-unitid="Enter_key_only">
176+
<source>Only add new line on enter after end of fully typed word</source>
177+
<targetstate="new">Only add new line on enter after end of fully typed word</target>
178+
<note />
179+
</trans-unit>
180+
<trans-unitid="Enter_Key_Rule">
181+
<source>Enter key behavior</source>
182+
<targetstate="new">Enter key behavior</target>
183+
<note />
184+
</trans-unit>
165185
</body>
166186
</file>
167187
</xliff>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp