Skip to content
This repository was archived by the owner on Dec 23, 2024. It is now read-only.

Commit dca642f

Browse files
auduchinokKevinRansom
authored andcommitted
Add IsInteractive to parsing options for script load closures (dotnet#4169)
* Add IsInteractive to FSharpParsingOptions * Add test
1 parent 2a75d7d commit dca642f

File tree

12 files changed

+17
-17
lines changed

12 files changed

+17
-17
lines changed

CodeFix/AddOpenCodeFixProvider.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ type internal FSharpAddOpenCodeFixProvider
101101
let! _, parsedInput, checkResults = checker.ParseAndCheckDocument(document, projectOptions, allowStaleResults = true, sourceText = sourceText, userOpName = userOpName)
102102
let line = sourceText.Lines.GetLineFromPosition(context.Span.End)
103103
let linePos = sourceText.Lines.GetLinePosition(context.Span.End)
104-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.Name, parsingOptions)
104+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
105105

106106
let! symbol =
107107
asyncMaybe {

CodeFix/ImplementInterfaceCodeFixProvider.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ type internal FSharpImplementInterfaceCodeFixProvider
144144
let! sourceText = context.Document.GetTextAsync(cancellationToken)
145145
let! _, parsedInput, checkFileResults = checker.ParseAndCheckDocument(context.Document, projectOptions, sourceText = sourceText, allowStaleResults = true, userOpName = userOpName)
146146
let textLine = sourceText.Lines.GetLineFromPosition context.Span.Start
147-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(context.Document.FilePath, parsingOptions)
147+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
148148
// Notice that context.Span doesn't return reliable ranges to find tokens at exact positions.
149149
// That's why we tokenize the line and try to find the last successive identifier token
150150
let tokens = Tokenizer.tokenizeLine(context.Document.Id, sourceText, context.Span.Start, context.Document.FilePath, defines)

CodeFix/RenameUnusedValue.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ type internal FSharpRenameUnusedValueCodeFixProvider
6060
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject document
6161
let! _, _, checkResults = checker.ParseAndCheckDocument(document, projectOptions, allowStaleResults = true, sourceText = sourceText, userOpName=userOpName)
6262
let m = RoslynHelpers.TextSpanToFSharpRange(document.FilePath, context.Span, sourceText)
63-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing (document.FilePath, parsingOptions)
63+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
6464
let! lexerSymbol = Tokenizer.getSymbolAtPosition (document.Id, sourceText, context.Span.Start, document.FilePath, defines, SymbolLookupKind.Greedy, false)
6565
let lineText = (sourceText.Lines.GetLineFromPosition context.Span.Start).ToString()
6666
let! symbolUse = checkResults.GetSymbolUseAtLocation(m.StartLine, m.EndColumn, lineText, lexerSymbol.FullIsland, userOpName=userOpName)

DocumentHighlights/DocumentHighlightsService.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ type internal FSharpDocumentHighlightsService [<ImportingConstructor>] (checkerP
7979
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject(document)
8080
let! sourceText = document.GetTextAsync(cancellationToken)
8181
let! textVersion = document.GetTextVersionAsync(cancellationToken)
82-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.Name, parsingOptions)
82+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
8383
let! spans = FSharpDocumentHighlightsService.GetDocumentHighlights(checkerProvider.Checker, document.Id, sourceText, document.FilePath,
8484
position, defines, projectOptions, textVersion.GetHashCode())
8585
let highlightSpans =

Formatting/EditorFormattingService.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ type internal FSharpEditorFormattingService
3838

3939
let line = sourceText.Lines.[sourceText.Lines.IndexOf position]
4040

41-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(filePath, parsingOptions)
41+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
4242

4343
let tokens = Tokenizer.tokenizeLine(documentId, sourceText, line.Start, filePath, defines)
4444

Formatting/IndentationService.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ type internal FSharpIndentationService
3737

3838
let rec tryFindLastNonWhitespaceOrCommentToken (line: TextLine) = maybe {
3939
let! parsingOptions, _projectOptions = options
40-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(filePath, parsingOptions)
40+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
4141
let tokens = Tokenizer.tokenizeLine(documentId, sourceText, line.Start, filePath, defines)
4242

4343
return!

InlineRename/InlineRenameService.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ type internal InlineRenameService
169169
asyncMaybe {
170170
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject(document)
171171
let! sourceText = document.GetTextAsync(cancellationToken)
172-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.Name, parsingOptions)
172+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
173173
return! InlineRenameService.GetInlineRenameInfo(checkerProvider.Checker, projectInfoManager, document, sourceText, position, defines, projectOptions)
174174
}
175175
|> Async.map (Option.defaultValue FailureInlineRenameInfo.Instance)

LanguageService/LanguageService.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ type internal FSharpProjectOptionsManager
162162
let parsingOptions =
163163
match projectOptionsOpt with
164164
| Some (parsingOptions, _site, _projectOptions) -> parsingOptions
165-
| _ -> FSharpParsingOptions.Default
166-
CompilerEnvironment.GetCompilationDefinesForEditing(document.Name, parsingOptions)
165+
| _ -> { FSharpParsingOptions.Default with IsInteractive = IsScript document.Name }
166+
CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
167167

168168
/// Try and get the Options for a project
169169
member this.TryGetOptionsForProject(projectId:ProjectId) = projectOptionsTable.TryGetOptionsForProject(projectId)

LanguageService/SymbolHelpers.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ module internal SymbolHelpers =
3131
let textLinePos = sourceText.Lines.GetLinePosition(position)
3232
let fcsTextLineNumber = Line.fromZ textLinePos.Line
3333
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject(document)
34-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.Name, parsingOptions)
34+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
3535
let! symbol = Tokenizer.getSymbolAtPosition(document.Id, sourceText, position, document.FilePath, defines, SymbolLookupKind.Greedy, false)
3636
let! _, _, checkFileResults = checker.ParseAndCheckDocument(document.FilePath, textVersionHash, sourceText.ToString(), projectOptions, allowStaleResults = true, userOpName = userOpName)
3737
let! symbolUse = checkFileResults.GetSymbolUseAtLocation(fcsTextLineNumber, symbol.Ident.idRange.EndColumn, textLine.ToString(), symbol.FullIsland, userOpName=userOpName)
@@ -96,7 +96,7 @@ module internal SymbolHelpers =
9696
let originalText = sourceText.ToString(symbolSpan)
9797
do! Option.guard (originalText.Length > 0)
9898
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject document
99-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.Name, parsingOptions)
99+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
100100
let! symbol = Tokenizer.getSymbolAtPosition(document.Id, sourceText, symbolSpan.Start, document.FilePath, defines, SymbolLookupKind.Greedy, false)
101101
let! _, _, checkFileResults = checker.ParseAndCheckDocument(document, projectOptions, allowStaleResults = true, userOpName = userOpName)
102102
let textLine = sourceText.Lines.GetLineFromPosition(symbolSpan.Start)

Navigation/FindUsagesService.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ type internal FSharpFindUsagesService
5555
let! _, _, checkFileResults = checker.ParseAndCheckDocument(document, projectOptions, sourceText = sourceText, allowStaleResults = true, userOpName = userOpName)
5656
let textLine = sourceText.Lines.GetLineFromPosition(position).ToString()
5757
let lineNumber = sourceText.Lines.GetLinePosition(position).Line + 1
58-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.FilePath, parsingOptions)
58+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
5959

6060
let! symbol = Tokenizer.getSymbolAtPosition(document.Id, sourceText, position, document.FilePath, defines, SymbolLookupKind.Greedy, false)
6161
let! symbolUse = checkFileResults.GetSymbolUseAtLocation(lineNumber, symbol.Ident.idRange.EndColumn, textLine, symbol.FullIsland, userOpName=userOpName)

0 commit comments

Comments
 (0)