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

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)

Navigation/GoToDefinitionService.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ type internal GoToDefinition(checker: FSharpChecker, projectInfoManager: FSharpP
5858
let findSymbolHelper (originDocument: Document, originRange: range, sourceText: SourceText, preferSignature: bool) : Async<FSharpNavigableItem option> =
5959
asyncMaybe {
6060
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject originDocument
61-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing (originDocument.FilePath, parsingOptions)
61+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
6262
let! originTextSpan = RoslynHelpers.TryFSharpRangeToTextSpan (sourceText, originRange)
6363
let position = originTextSpan.Start
6464
let! lexerSymbol = Tokenizer.getSymbolAtPosition (originDocument.Id, sourceText, position, originDocument.FilePath, defines, SymbolLookupKind.Greedy, false)
@@ -297,7 +297,7 @@ type internal FSharpGoToDefinitionService
297297
asyncMaybe {
298298
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject originDocument
299299
let! sourceText = originDocument.GetTextAsync () |> liftTaskAsync
300-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing (originDocument.FilePath, parsingOptions)
300+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
301301
let textLine = sourceText.Lines.GetLineFromPosition position
302302
let textLinePos = sourceText.Lines.GetLinePosition position
303303
let fcsTextLineNumber = Line.fromZ textLinePos.Line

QuickInfo/QuickInfoProvider.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ module private FSharpQuickInfo =
5656

5757
// project options need to be retrieved because the signature file could be in another project
5858
let! extParsingOptions, _extSite, extProjectOptions = projectInfoManager.TryGetOptionsForProject extDocId.ProjectId
59-
let extDefines = CompilerEnvironment.GetCompilationDefinesForEditing (extDocument.FilePath, extParsingOptions)
59+
let extDefines = CompilerEnvironment.GetCompilationDefinesForEditing extParsingOptions
6060
let! extLexerSymbol = Tokenizer.getSymbolAtPosition(extDocId, extSourceText, extSpan.Start, declRange.FileName, extDefines, SymbolLookupKind.Greedy, true)
6161
let! _, _, extCheckFileResults = checker.ParseAndCheckDocument(extDocument, extProjectOptions, allowStaleResults=true, sourceText=extSourceText, userOpName = userOpName)
6262

@@ -92,7 +92,7 @@ module private FSharpQuickInfo =
9292
asyncMaybe {
9393
let! sourceText = document.GetTextAsync cancellationToken
9494
let! parsingOptions, projectOptions = projectInfoManager.TryGetOptionsForEditingDocumentOrProject document
95-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing(document.FilePath, parsingOptions)
95+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
9696
let! lexerSymbol = Tokenizer.getSymbolAtPosition(document.Id, sourceText, position, document.FilePath, defines, SymbolLookupKind.Greedy, true)
9797
let idRange = lexerSymbol.Ident.idRange
9898
let! _, _, checkFileResults = checker.ParseAndCheckDocument(document, projectOptions, allowStaleResults = true, sourceText=sourceText, userOpName = userOpName)
@@ -175,7 +175,7 @@ type internal FSharpQuickInfoProvider
175175
let! _, _, checkFileResults = checker.ParseAndCheckDocument (filePath, textVersionHash, sourceText.ToString(), options, allowStaleResults = true, userOpName = FSharpQuickInfo.userOpName)
176176
let textLine = sourceText.Lines.GetLineFromPosition position
177177
let textLineNumber = textLine.LineNumber + 1 // Roslyn line numbers are zero-based
178-
let defines = CompilerEnvironment.GetCompilationDefinesForEditing (filePath, parsingOptions)
178+
let defines = CompilerEnvironment.GetCompilationDefinesForEditing parsingOptions
179179
let! symbol = Tokenizer.getSymbolAtPosition (documentId, sourceText, position, filePath, defines, SymbolLookupKind.Precise, true)
180180
let! res = checkFileResults.GetStructuredToolTipText (textLineNumber, symbol.Ident.idRange.EndColumn, textLine.ToString(), symbol.FullIsland, FSharpTokenTag.IDENT, userOpName=FSharpQuickInfo.userOpName) |> liftAsync
181181
match res with

0 commit comments

Comments
 (0)