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

Commitfb7f380

Browse files
authored
Merge pull requestdotnet#5078 from Microsoft/merges/master-to-dev15.8
Merge master to dev15.8
2 parentsdb91d1a +db233f1 commitfb7f380

File tree

11 files changed

+676
-531
lines changed

11 files changed

+676
-531
lines changed

‎src/fsharp/FSharp.Core/async.fs‎

Lines changed: 77 additions & 54 deletions
Large diffs are not rendered by default.

‎tests/scripts/compiler-perf-results.txt‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ https://github.com/dsyme/visualfsharp.git weak2 35b7
138138
https://github.com/dsyme/visualfsharp.git range1 e49ac8a2f21223e60d0d9597e52ea9e5f8705963 221224e6d20bd835c2b9e01e0a52bf45e740a8d0 MSRC-3617253 275.83 12.79 32.57 53.38 61.94 58.03
139139
https://github.com/dsyme/visualfsharp.git range1 46be8bee06180324b63a3b808cf4a90492a5f095 ff078e94deff66e548efb668465fcdd601cc158d MSRC-3617253 265.13 10.57 35.61 48.73 59.07 59.03
140140

141-
https://github.com/Microsoft/visualfsharp master 221224e6d20bd835c2b9e01e0a52bf45e740a8d0 221224e6d20bd835c2b9e01e0a52bf45e740a8d0 MSRC-3617253 273.00 12.46 32.80 51.38 60.93 58.66
142141
https://github.com/Microsoft/visualfsharp master 4df997507226caa272f2c7d4fbdc52eb71c8ead2 4df997507226caa272f2c7d4fbdc52eb71c8ead2 MSRC-3617253 254.53 11.55 31.80 46.58 57.03 58.89
143142
https://github.com/Microsoft/visualfsharp master 65d87f0b2ee67e50503540aad5d4438fdde14fea 65d87f0b2ee67e50503540aad5d4438fdde14fea MSRC-3617253 257.92 10.44 32.62 45.45 56.68 58.53
144143
https://github.com/Microsoft/visualfsharp master ff078e94deff66e548efb668465fcdd601cc158d ff078e94deff66e548efb668465fcdd601cc158d MSRC-3617253 262.60 10.60 34.99 47.73 59.08 58.46
@@ -147,3 +146,5 @@ https://github.com/AviAvni/visualfsharp.git fcs-memory-3 d91d
147146
https://github.com/AviAvni/visualfsharp.git fcs-memory-3 d91dbc81ce304a88a4e3c07032781421c71e3bab 284cb2ff115adb8ff5b1febe1c305a10c933172e MSRC-3617253 263.53 10.34 35.19 48.32 58.79 59.08
148147
https://github.com/dsyme/visualfsharp.git range1 46be8bee06180324b63a3b808cf4a90492a5f095 284cb2ff115adb8ff5b1febe1c305a10c933172e MSRC-3617253 262.84 10.55 35.17 48.54 59.51 59.15
149148
https://github.com/Microsoft/visualfsharp master 284cb2ff115adb8ff5b1febe1c305a10c933172e 284cb2ff115adb8ff5b1febe1c305a10c933172e MSRC-3617253 262.07 10.58 34.79 48.58 58.51 58.31
149+
https://github.com/Microsoft/visualfsharp master 61907dcd859702924021bc0aad74f64ce459c9f0 61907dcd859702924021bc0aad74f64ce459c9f0 MSRC-3617253 254.94 10.66 37.64 47.23 57.64 58.96
150+
https://github.com/Microsoft/visualfsharp master 61907dcd859702924021bc0aad74f64ce459c9f0 61907dcd859702924021bc0aad74f64ce459c9f0 MSRC-3617253 253.14 10.05 35.05 48.81 58.62 58.47

‎vsintegration/src/FSharp.Editor/AutomaticCompletion/BraceCompletionSessionProvider.fs‎

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ type BraceCompletionSession
9999
Debug.Fail("The closing point was not found at the expected position.")
100100
this.EndSession()
101101
else
102-
103102
letopeningSnapshotPoint= closingSnapshotPoint.Subtract(1)
104103

105104
if openingSnapshotPoint.GetChar()<> openingBracethen
@@ -108,17 +107,14 @@ type BraceCompletionSession
108107
// Debug.Fail("The opening brace was not found at the expected position.");
109108
this.EndSession()
110109
else
111-
112110
openingPoint<- snapshot.CreateTrackingPoint(openingSnapshotPoint.Position, PointTrackingMode.Positive)
113111
let_document= snapshot.GetOpenDocumentInCurrentContextWithChanges()
114112

115113
ifnot(session.CheckOpeningPoint(this, cancellationToken))then
116114
this.EndSession()
117115
else
118-
119116
use undo= this.CreateUndoTransaction()
120-
121-
snapshot<-
117+
letnextSnapshot=
122118
use edit= subjectBuffer.CreateEdit()
123119

124120
edit.Insert(closingSnapshotPoint.Position, closingBrace.ToString())|> ignore
@@ -129,24 +125,28 @@ type BraceCompletionSession
129125
// exit without setting the closing point which will take us off the stack
130126
edit.Cancel()
131127
undo.Cancel()
132-
snapshot
128+
None
133129
else
134-
edit.Apply()// FIXME: perhaps, it should be ApplyAndLogExceptions()
130+
Some(edit.Apply())// FIXME: perhaps, it should be ApplyAndLogExceptions()
135131

136-
letbeforePoint= beforeTrackingPoint.GetPoint(textView.TextSnapshot)
132+
match nextSnapshotwith
133+
| None->()
134+
| Some(nextSnapshot)->
137135

138-
// switch from positive to negative tracking so it stays against the closing brace
139-
closingPoint<- subjectBuffer.CurrentSnapshot.CreateTrackingPoint(closingPoint.GetPoint(snapshot).Position, PointTrackingMode.Negative)
136+
letbeforePoint= beforeTrackingPoint.GetPoint(textView.TextSnapshot)
140137

141-
Debug.Assert(closingPoint.GetPoint(snapshot).Position>0&&(SnapshotSpan(closingPoint.GetPoint(snapshot).Subtract(1),1)).GetText().Equals(closingBrace.ToString()),
142-
"The closing point does not match the closing brace character")
138+
// switch from positive to negative tracking so it stays against the closing brace
139+
closingPoint<- subjectBuffer.CurrentSnapshot.CreateTrackingPoint(closingPoint.GetPoint(nextSnapshot).Position, PointTrackingMode.Negative)
143140

144-
// move the caret back between the braces
145-
textView.Caret.MoveTo(beforePoint)|> ignore
141+
Debug.Assert(closingPoint.GetPoint(nextSnapshot).Position>0&&(SnapshotSpan(closingPoint.GetPoint(nextSnapshot).Subtract(1),1)).GetText().Equals(closingBrace.ToString()),
142+
"The closing point does not match the closing brace character")
146143

147-
session.AfterStart(this, cancellationToken)
144+
// move the caret back between the braces
145+
textView.Caret.MoveTo(beforePoint)|> ignore
148146

149-
undo.Complete()
147+
session.AfterStart(this, cancellationToken)
148+
149+
undo.Complete()
150150

151151
member__.HasNoForwardTyping(caretPoint:SnapshotPoint,endPoint:SnapshotPoint)=
152152
Debug.Assert(caretPoint.Snapshot= endPoint.Snapshot,"snapshots do not match")
@@ -194,33 +194,28 @@ type BraceCompletionSession
194194
memberthis.PreBackspace handledCommand=
195195
handledCommand<-false
196196

197-
match tryGetCaretPosition thiswith
198-
| Some caretPos->
199-
letsnapshot= subjectBuffer.CurrentSnapshot
197+
letcaretPos= tryGetCaretPosition this
198+
letsnapshot= subjectBuffer.CurrentSnapshot
200199

201-
if caretPos.Position>0&&
202-
caretPos.Position-1= openingPoint.GetPoint(snapshot).Position&&
203-
not this.HasForwardTypingthen
204-
205-
use undo= this.CreateUndoTransaction()
206-
use edit= subjectBuffer.CreateEdit()
200+
if caretPos.IsSome&& caretPos.Value.Position>0&&(caretPos.Value.Position-1)= openingPoint.GetPoint(snapshot).Position&&not this.HasForwardTypingthen
201+
use undo= this.CreateUndoTransaction()
202+
use edit= subjectBuffer.CreateEdit()
207203

208-
letspan= SnapshotSpan(openingPoint.GetPoint(snapshot), closingPoint.GetPoint(snapshot))
204+
letspan= SnapshotSpan(openingPoint.GetPoint(snapshot), closingPoint.GetPoint(snapshot))
209205

210-
edit.Delete(span.Span)|> ignore
206+
edit.Delete(span.Span)|> ignore
211207

212-
if edit.HasFailedChangesthen
213-
edit.Cancel()
214-
undo.Cancel()
215-
Debug.Fail("Unable to clear braces")
216-
else
217-
// handle the command so the backspace does
218-
// not go through since we've already cleared the braces
219-
handledCommand<-true
220-
edit.Apply()|> ignore// FIXME: ApplyAndLogExceptions()
221-
undo.Complete()
222-
this.EndSession()
223-
|_->()
208+
if edit.HasFailedChangesthen
209+
edit.Cancel()
210+
undo.Cancel()
211+
Debug.Fail("Unable to clear braces")
212+
else
213+
// handle the command so the backspace does
214+
// not go through since we've already cleared the braces
215+
handledCommand<-true
216+
edit.Apply()|> ignore// FIXME: ApplyAndLogExceptions()
217+
undo.Complete()
218+
this.EndSession()
224219

225220
member__.PostBackspace()=()
226221

@@ -235,15 +230,17 @@ type BraceCompletionSession
235230

236231
letclosingSnapshotPoint= closingPoint.GetPoint(snapshot)
237232
ifnot this.HasForwardTyping&& session.AllowOverType(this, cancellationToken)then
238-
letcaretPosOpt= tryGetCaretPosition this
233+
letcaretPos= tryGetCaretPosition this
239234

240-
Debug.Assert(caretPosOpt.IsSome&&caretPosOpt.Value.Position< closingSnapshotPoint.Position)
235+
Debug.Assert(caretPos.IsSome&&caretPos.Value.Position< closingSnapshotPoint.Position)
241236

242-
matchcaretPosOptwith
237+
matchcaretPoswith
243238
// ensure that we are within the session before clearing
244239
| Some caretPoswhen caretPos.Position< closingSnapshotPoint.Position&& closingSnapshotPoint.Position>0->
245240
use undo= this.CreateUndoTransaction()
246241

242+
editorOperations.AddBeforeTextBufferChangePrimitive()
243+
247244
letspan= SnapshotSpan(caretPos, closingSnapshotPoint.Subtract(1))
248245

249246
use edit= subjectBuffer.CreateEdit()

‎vsintegration/src/FSharp.Editor/CodeLens/CodeLensProvider.fs‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@ open Microsoft.VisualStudio.FSharp.Editor.Logging
2828
typeinternalCodeLensProvider
2929
[<ImportingConstructor>]
3030
(
31+
[<Import(typeof<SVsServiceProvider>)>] serviceProvider: IServiceProvider,
3132
textDocumentFactory: ITextDocumentFactoryService,
3233
checkerProvider: FSharpCheckerProvider,
3334
projectInfoManager: FSharpProjectOptionsManager,
34-
typeMap: ClassificationTypeMap Lazy,
35-
gotoDefinitionService: FSharpGoToDefinitionService
35+
typeMap: ClassificationTypeMap Lazy
3636
)=
37-
37+
3838
letlineLensProvider= ResizeArray()
3939
lettaggers= ResizeArray()
4040
letcomponentModel= Package.GetGlobalService(typeof<ComponentModelHost.SComponentModel>):?> ComponentModelHost.IComponentModel
4141
letworkspace= componentModel.GetService<VisualStudioWorkspace>()
42-
42+
4343
/// Returns an provider for the textView if already one has been created. Else create one.
4444
letaddCodeLensProviderOnce wpfView buffer=
4545
letres= taggers|> Seq.tryFind(fun(view,_)-> view= wpfView)
@@ -56,12 +56,12 @@ type internal CodeLensProvider
5656
)
5757

5858
lettagger= CodeLensGeneralTagger(wpfView, buffer)
59-
letservice= FSharpCodeLensService(workspace, documentId, buffer, checkerProvider.Checker, projectInfoManager, componentModel.GetService(), typeMap, gotoDefinitionService, tagger)
59+
letservice= FSharpCodeLensService(serviceProvider,workspace, documentId, buffer, checkerProvider.Checker, projectInfoManager, componentModel.GetService(), typeMap, tagger)
6060
letprovider=(wpfView,(tagger, service))
6161
wpfView.Closed.Add(fun _-> taggers.Remove provider|> ignore)
6262
taggers.Add((wpfView,(tagger, service)))
6363
tagger
64-
64+
6565
/// Returns an provider for the textView if already one has been created. Else create one.
6666
letaddLineLensProviderOnce wpfView buffer=
6767
letres= lineLensProvider|> Seq.tryFind(fun(view,_)-> view= wpfView)
@@ -75,7 +75,7 @@ type internal CodeLensProvider
7575
|_-> None
7676
|> Option.get
7777
)
78-
letservice= FSharpCodeLensService(workspace, documentId, buffer, checkerProvider.Checker, projectInfoManager, componentModel.GetService(), typeMap, gotoDefinitionService, LineLensDisplayService(wpfView, buffer))
78+
letservice= FSharpCodeLensService(serviceProvider,workspace, documentId, buffer, checkerProvider.Checker, projectInfoManager, componentModel.GetService(), typeMap, LineLensDisplayService(wpfView, buffer))
7979
letprovider=(wpfView, service)
8080
wpfView.Closed.Add(fun _-> lineLensProvider.Remove provider|> ignore)
8181
lineLensProvider.Add(provider)

‎vsintegration/src/FSharp.Editor/CodeLens/FSharpCodeLensService.fs‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,23 @@ open Microsoft.VisualStudio.FSharp.Editor.Logging
2626
openMicrosoft.VisualStudio.Text.Classification
2727

2828
typeinternalCodeLens(taggedText,computed,fullTypeSignature,uiElement)=
29-
member valTaggedText:Async<(ResizeArray<Layout.TaggedText>* QuickInfoNavigation)option>= taggedText
30-
member valComputed:bool= computedwith get, set
31-
member valFullTypeSignature:string= fullTypeSignature
32-
member valUiElement:UIElement= uiElementwith get, set
29+
member valTaggedText:Async<(ResizeArray<Layout.TaggedText>* QuickInfoNavigation)option>= taggedText
30+
member valComputed:bool= computedwith get, set
31+
member valFullTypeSignature:string= fullTypeSignature
32+
member valUiElement:UIElement= uiElementwith get, set
3333

3434
typeinternalFSharpCodeLensService
3535
(
36+
serviceProvider: IServiceProvider,
3637
workspace: Workspace,
3738
documentId: Lazy<DocumentId>,
3839
buffer: ITextBuffer,
3940
checker: FSharpChecker,
4041
projectInfoManager: FSharpProjectOptionsManager,
4142
classificationFormatMapService: IClassificationFormatMapService,
4243
typeMap: Lazy<ClassificationTypeMap>,
43-
gotoDefinitionService: FSharpGoToDefinitionService,
4444
codeLens: CodeLensDisplayService
45-
)as self=
45+
)as self=
4646

4747
letlineLens= codeLens
4848

@@ -172,7 +172,7 @@ type internal FSharpCodeLensService
172172
lettaggedText= ResizeArray()
173173

174174
Layout.renderL(Layout.taggedTextListR taggedText.Add) typeLayout|> ignore
175-
letnavigation= QuickInfoNavigation(gotoDefinitionService, document, realPosition)
175+
letnavigation= QuickInfoNavigation(serviceProvider, checker, projectInfoManager, document, realPosition)
176176
// Because the data is available notify that this line should be updated, displaying the results
177177
return Some(taggedText, navigation)
178178
| None->

‎vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@
7373
<CompileInclude="Completion\SignatureHelp.fs" />
7474
<CompileInclude="InlineRename\InlineRenameService.fs" />
7575
<CompileInclude="DocumentHighlights\DocumentHighlightsService.fs" />
76+
<CompileInclude="Navigation\GoToDefinition.fs" />
77+
<CompileInclude="Navigation\NavigableSymbolsService.fs" />
7678
<CompileInclude="Navigation\GoToDefinitionService.fs" />
7779
<CompileInclude="Navigation\NavigationBarItemService.fs" />
7880
<CompileInclude="Navigation\NavigateToSearchService.fs" />

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp