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

Commit3e59fa0

Browse files
cartermpTIHan
authored andcommitted
Rename colorization to classification in VF# (dotnet#4650)
* Colorization -> Classification* Undo stupid* Make names better and add comment explaining routine
1 parent1148881 commit3e59fa0

File tree

12 files changed

+32
-33
lines changed

12 files changed

+32
-33
lines changed

‎vsintegration/src/FSharp.Editor/Classification/ColorizationService.fs‎renamed to ‎vsintegration/src/FSharp.Editor/Classification/ClassificationService.fs‎

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@ open Microsoft.CodeAnalysis.Editor
1414
openMicrosoft.CodeAnalysis.Host.Mef
1515
openMicrosoft.CodeAnalysis.Text
1616

17-
openMicrosoft.FSharp.Compiler.SourceCodeServices
18-
1917
// IEditorClassificationService is marked as Obsolete, but is still supported. The replacement (IClassificationService)
2018
// is internal to Microsoft.CodeAnalysis.Workspaces which we don't have internals visible to. Rather than add yet another
2119
// IVT, we'll maintain the status quo.
2220
#nowarn"44"
2321

2422
[<ExportLanguageService(typeof<IEditorClassificationService>, FSharpConstants.FSharpLanguageName)>]
25-
typeinternalFSharpColorizationService
23+
typeinternalFSharpClassificationService
2624
[<ImportingConstructor>]
2725
(
2826
checkerProvider: FSharpCheckerProvider,
@@ -32,27 +30,27 @@ type internal FSharpColorizationService
3230

3331
interface IEditorClassificationServicewith
3432
// Do not perform classification if we don't have project options (#defines matter)
35-
memberthis.AddLexicalClassifications(_:SourceText,_:TextSpan,_:List<ClassifiedSpan>,_:CancellationToken)=()
33+
member__.AddLexicalClassifications(_:SourceText,_:TextSpan,_:List<ClassifiedSpan>,_:CancellationToken)=()
3634

37-
memberthis.AddSyntacticClassificationsAsync(document:Document,textSpan:TextSpan,result:List<ClassifiedSpan>,cancellationToken:CancellationToken)=
35+
member__.AddSyntacticClassificationsAsync(document:Document,textSpan:TextSpan,result:List<ClassifiedSpan>,cancellationToken:CancellationToken)=
3836
async{
3937
letdefines= projectInfoManager.GetCompilationDefinesForEditingDocument(document)
4038
let!sourceText= document.GetTextAsync(cancellationToken)|> Async.AwaitTask
41-
result.AddRange(Tokenizer.getColorizationData(document.Id, sourceText, textSpan, Some(document.FilePath), defines, cancellationToken))
39+
result.AddRange(Tokenizer.getClassifiedSpans(document.Id, sourceText, textSpan, Some(document.FilePath), defines, cancellationToken))
4240
}|> RoslynHelpers.StartAsyncUnitAsTask cancellationToken
4341

44-
memberthis.AddSemanticClassificationsAsync(document:Document,textSpan:TextSpan,result:List<ClassifiedSpan>,cancellationToken:CancellationToken)=
42+
member__.AddSemanticClassificationsAsync(document:Document,textSpan:TextSpan,result:List<ClassifiedSpan>,cancellationToken:CancellationToken)=
4543
asyncMaybe{
4644
do Trace.TraceInformation("{0:n3} (start) SemanticColorization", DateTime.Now.TimeOfDay.TotalSeconds)
47-
do! Async.Sleep DefaultTuning.SemanticColorizationInitialDelay|> liftAsync// be less intrusive, give other work priority most of the time
45+
do! Async.Sleep DefaultTuning.SemanticClassificationInitialDelay|> liftAsync// be less intrusive, give other work priority most of the time
4846
let!_,_,projectOptions= projectInfoManager.TryGetOptionsForDocumentOrProject(document)
4947
let!sourceText= document.GetTextAsync(cancellationToken)
5048
let!_,_,checkResults= checkerProvider.Checker.ParseAndCheckDocument(document, projectOptions, sourceText= sourceText, allowStaleResults=false, userOpName=userOpName)
5149
// it's crucial to not return duplicated or overlapping `ClassifiedSpan`s because Find Usages service crashes.
5250
lettargetRange= RoslynHelpers.TextSpanToFSharpRange(document.FilePath, textSpan, sourceText)
53-
letcolorizationData= checkResults.GetSemanticClassification(Some targetRange)|> Array.distinctBy fst
51+
letclassificationData= checkResults.GetSemanticClassification(Some targetRange)|> Array.distinctBy fst
5452

55-
for(range, classificationType)incolorizationDatado
53+
for(range, classificationType)inclassificationDatado
5654
match RoslynHelpers.TryFSharpRangeToTextSpan(sourceText, range)with
5755
| None->()
5856
| Some span->
@@ -62,7 +60,7 @@ type internal FSharpColorizationService
6260
|> Async.Ignore|> RoslynHelpers.StartAsyncUnitAsTask cancellationToken
6361

6462
// Do not perform classification if we don't have project options (#defines matter)
65-
memberthis.AdjustStaleClassification(_:SourceText,classifiedSpan:ClassifiedSpan):ClassifiedSpan= classifiedSpan
63+
member__.AdjustStaleClassification(_:SourceText,classifiedSpan:ClassifiedSpan):ClassifiedSpan= classifiedSpan
6664

6765

6866

‎vsintegration/src/FSharp.Editor/Commands/HelpContextService.fs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ type internal FSharpHelpContextService
104104
let!textVersion= document.GetTextVersionAsync(cancellationToken)
105105
letdefines= projectInfoManager.GetCompilationDefinesForEditingDocument(document)
106106
lettextLine= sourceText.Lines.GetLineFromPosition(textSpan.Start)
107-
lettokens= Tokenizer.getColorizationData(document.Id, sourceText, textLine.Span, Some document.Name, defines, cancellationToken)
108-
return! FSharpHelpContextService.GetHelpTerm(checkerProvider.Checker, sourceText, document.FilePath, projectOptions, textSpan,tokens, textVersion.GetHashCode())
107+
letclassifiedSpans= Tokenizer.getClassifiedSpans(document.Id, sourceText, textLine.Span, Some document.Name, defines, cancellationToken)
108+
return! FSharpHelpContextService.GetHelpTerm(checkerProvider.Checker, sourceText, document.FilePath, projectOptions, textSpan,classifiedSpans, textVersion.GetHashCode())
109109
}
110110
|> Async.map(Option.defaultValue"")
111111
|> RoslynHelpers.StartAsyncAsTask cancellationToken

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ module internal CompletionUtils =
8585
letshouldProvideCompletion(documentId:DocumentId,filePath:string,defines:string list,sourceText:SourceText,triggerPosition:int):bool=
8686
lettextLines= sourceText.Lines
8787
lettriggerLine= textLines.GetLineFromPosition triggerPosition
88-
letcolorizationData= Tokenizer.getColorizationData(documentId, sourceText, triggerLine.Span, Some filePath, defines, CancellationToken.None)
89-
colorizationData.Count=0||// we should provide completion at the start of empty line, where there are no tokens at all
90-
colorizationData.Exists(fun classifiedSpan->
88+
letclassifiedSpans= Tokenizer.getClassifiedSpans(documentId, sourceText, triggerLine.Span, Some filePath, defines, CancellationToken.None)
89+
classifiedSpans.Count=0||// we should provide completion at the start of empty line, where there are no tokens at all
90+
classifiedSpans.Exists(fun classifiedSpan->
9191
classifiedSpan.TextSpan.IntersectsWith triggerPosition&&
9292
(
9393
match classifiedSpan.ClassificationTypewith

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ type internal HashDirectiveCompletionProvider(workspace: Workspace, projectInfoM
4545

4646
letincludeDirectiveCleanRegex= Regex("""#I\s+(@?"*(?<literal>[^"]*)"?)""", RegexOptions.Compiled||| RegexOptions.ExplicitCapture)
4747

48-
letgetColorizationData(text:SourceText,position:int):ResizeArray<ClassifiedSpan>=
48+
letgetClassifiedSpans(text:SourceText,position:int):ResizeArray<ClassifiedSpan>=
4949
letdocumentId= workspace.GetDocumentIdInCurrentContext(text.Container)
5050
letdocument= workspace.CurrentSolution.GetDocument(documentId)
5151
letdefines= projectInfoManager.GetCompilationDefinesForEditingDocument(document)
5252
lettextLines= text.Lines
5353
lettriggerLine= textLines.GetLineFromPosition(position)
54-
Tokenizer.getColorizationData(documentId, text, triggerLine.Span, Some document.FilePath, defines, CancellationToken.None)
54+
Tokenizer.getClassifiedSpans(documentId, text, triggerLine.Span, Some document.FilePath, defines, CancellationToken.None)
5555

5656
letisInStringLiteral(text:SourceText,position:int):bool=
57-
getColorizationData(text, position)
57+
getClassifiedSpans(text, position)
5858
|> Seq.exists(fun classifiedSpan->
5959
classifiedSpan.TextSpan.IntersectsWith position&&
6060
classifiedSpan.ClassificationType= ClassificationTypeNames.StringLiteral)
@@ -71,7 +71,7 @@ type internal HashDirectiveCompletionProvider(workspace: Workspace, projectInfoM
7171
else
7272
match includeDirectiveCleanRegex.Match lineStrwith
7373
| mwhen m.Success->
74-
getColorizationData(text, line.Start)
74+
getClassifiedSpans(text, line.Start)
7575
|> Seq.tryPick(fun span->
7676
if span.TextSpan.IntersectsWith line.Start&&
7777
(span.ClassificationType<> ClassificationTypeNames.Comment&&

‎vsintegration/src/FSharp.Editor/Debugging/LanguageDebugInfoService.fs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ type internal FSharpLanguageDebugInfoService [<ImportingConstructor>](projectInf
5656
let!cancellationToken= Async.CancellationToken
5757
let!sourceText= document.GetTextAsync(cancellationToken)|> Async.AwaitTask
5858
lettextSpan= TextSpan.FromBounds(0, sourceText.Length)
59-
lettokens= Tokenizer.getColorizationData(document.Id, sourceText, textSpan, Some(document.Name), defines, cancellationToken)
59+
letclassifiedSpans= Tokenizer.getClassifiedSpans(document.Id, sourceText, textSpan, Some(document.Name), defines, cancellationToken)
6060
letresult=
61-
match FSharpLanguageDebugInfoService.GetDataTipInformation(sourceText, position,tokens)with
61+
match FSharpLanguageDebugInfoService.GetDataTipInformation(sourceText, position,classifiedSpans)with
6262
| None-> DebugDataTipInfo()
6363
| Some textSpan-> DebugDataTipInfo(textSpan, sourceText.GetSubText(textSpan).ToString())
6464
return result

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
<CompileInclude="LanguageService\AssemblyContentProvider.fs" />
5151
<CompileInclude="LanguageService\SymbolHelpers.fs" />
5252
<CompileInclude="Classification\ClassificationDefinitions.fs" />
53-
<CompileInclude="Classification\ColorizationService.fs" />
53+
<CompileInclude="Classification\ClassificationService.fs" />
5454
<CompileInclude="Formatting\BraceMatchingService.fs" />
5555
<CompileInclude="Formatting\IndentationService.fs" />
5656
<CompileInclude="Formatting\EditorFormattingService.fs" />

‎vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ type internal FSharpCheckerProvider
5757
letmmd= amd.GetModules().[0]
5858
letmmr= mmd.GetMetadataReader()
5959

60-
// "lifetime is timed to Metadata you got from the GetMetadata(). As long as you hold it strongly, raw
60+
// "lifetime is timed to Metadata you got from the GetMetadata(...). As long as you hold it strongly, raw
6161
// memory we got from metadata reader will be alive. Once you are done, just let everything go and
6262
// let finalizer handle resource rather than calling Dispose from Metadata directly. It is shared metadata.
63-
// You shouldnt dispose it directly."
63+
// You shouldn't dispose it directly."
6464

6565
letobjToHold= box md
6666

‎vsintegration/src/FSharp.Editor/LanguageService/Tokenizer.fs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,8 @@ module internal Tokenizer =
441441
dict.TryAdd(defines, data)|> ignore
442442
data
443443

444-
letgetColorizationData(documentKey:DocumentId,sourceText:SourceText,textSpan:TextSpan,fileName:string option,defines:string list,
444+
/// Generates a list of Classified Spans for tokens which undergo syntactic classification (i.e., are not typechecked).
445+
letgetClassifiedSpans(documentKey:DocumentId,sourceText:SourceText,textSpan:TextSpan,fileName:string option,defines:string list,
445446
cancellationToken:CancellationToken):List<ClassifiedSpan>=
446447
try
447448
letsourceTokenizer= FSharpSourceTokenizer(defines, fileName)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ open SettingsPersistence
99
openOptionsUIHelpers
1010

1111
moduleDefaultTuning=
12-
letSemanticColorizationInitialDelay=0(* milliseconds*)
12+
letSemanticClassificationInitialDelay=0(* milliseconds*)
1313
letUnusedDeclarationsAnalyzerInitialDelay=0(* 1000*)(* milliseconds*)
1414
letUnusedOpensAnalyzerInitialDelay=0(* 2000*)(* milliseconds*)
1515
letSimplifyNameInitialDelay=2000(* milliseconds*)

‎vsintegration/tests/UnitTests/ColorizationServiceTests.fs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ open Microsoft.CodeAnalysis.Text
1212
openMicrosoft.VisualStudio.FSharp.Editor
1313

1414
[<TestFixture>][<Category"Roslyn Services">]
15-
typeColorizationServiceTests()=
15+
typeClassificationServiceTests()=
1616

1717
memberprivatethis.ExtractMarkerData(fileContents:string,marker:string,defines:string list,isScriptFile:Option<bool>)=
1818
lettextSpan= TextSpan(0, fileContents.Length)
1919
letfileName=if isScriptFile.IsSome&& isScriptFile.Valuethen"test.fsx"else"test.fs"
2020
letdocumentId= DocumentId.CreateNewId(ProjectId.CreateNewId())
21-
lettokens= Tokenizer.getColorizationData(documentId, SourceText.From(fileContents), textSpan, Some(fileName), defines, CancellationToken.None)
21+
lettokens= Tokenizer.getClassifiedSpans(documentId, SourceText.From(fileContents), textSpan, Some(fileName), defines, CancellationToken.None)
2222
letmarkerPosition= fileContents.IndexOf(marker)
2323
Assert.IsTrue(markerPosition>=0,"Cannot find marker '{0}' in file contents", marker)
2424
(tokens, markerPosition)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp