Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
8516358a
F
fsharp
项目概览
dotNET Platform
/
fsharp
12 个月 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8516358a
编写于
12月 16, 2017
作者:
D
David Wedelich
提交者:
Will Smith
12月 16, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
only ParseAndCheckDocument once in the CompletionProvider (#4123)
上级
19f18530
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
8 deletion
+3
-8
vsintegration/src/FSharp.Editor/Completion/CompletionProvider.fs
...ration/src/FSharp.Editor/Completion/CompletionProvider.fs
+3
-8
未找到文件。
vsintegration/src/FSharp.Editor/Completion/CompletionProvider.fs
浏览文件 @
8516358a
...
...
@@ -97,14 +97,10 @@ type internal FSharpCompletionProvider
static
member
ProvideCompletionsAsyncAux
(
checker
:
FSharpChecker
,
sourceText
:
SourceText
,
caretPosition
:
int
,
options
:
FSharpProjectOptions
,
filePath
:
string
,
textVersionHash
:
int
,
getAllSymbols
:
unit
->
AssemblySymbol
list
)
=
textVersionHash
:
int
,
getAllSymbols
:
FSharpCheckFileResults
->
AssemblySymbol
list
)
=
asyncMaybe
{
let
!
parseResults
,
_,
checkFileResults
=
checker
.
ParseAndCheckDocument
(
filePath
,
textVersionHash
,
sourceText
.
ToString
()
,
options
,
allowStaleResults
=
true
,
userOpName
=
userOpName
)
//#if DEBUG
//Logging.Logging.logInfof "AST:\n%+A" parsedInput
//#endif
let
textLines
=
sourceText
.
Lines
let
caretLinePos
=
textLines
.
GetLinePosition
(
caretPosition
)
let
caretLine
=
textLines
.
GetLineFromPosition
(
caretPosition
)
...
...
@@ -113,7 +109,7 @@ type internal FSharpCompletionProvider
let
partialName
=
QuickParse
.
GetPartialLongNameEx
(
caretLine
.
ToString
()
,
caretLineColumn
-
1
)
let
getAllSymbols
()
=
getAllSymbols
()
getAllSymbols
checkFileResults
|>
List
.
filter
(
fun
entity
->
entity
.
FullName
.
Contains
"."
&&
not
(
PrettyNaming
.
IsOperatorName
entity
.
Symbol
.
DisplayName
))
let
!
declarations
=
checkFileResults
.
GetDeclarationListInfo
(
Some
(
parseResults
),
fcsCaretLineNumber
,
caretLine
.
ToString
()
,
...
...
@@ -222,8 +218,7 @@ type internal FSharpCompletionProvider
do
!
Option
.
guard
(
CompletionUtils
.
shouldProvideCompletion
(
document
.
Id
,
document
.
FilePath
,
defines
,
sourceText
,
context
.
Position
))
let
!
_
parsingOptions
,
projectOptions
=
projectInfoManager
.
TryGetOptionsForEditingDocumentOrProject
(
document
)
let
!
textVersion
=
context
.
Document
.
GetTextVersionAsync
(
context
.
CancellationToken
)
let
!
_,
_,
fileCheckResults
=
checker
.
ParseAndCheckDocument
(
document
,
projectOptions
,
true
,
userOpName
=
userOpName
)
let
getAllSymbols
()
=
let
getAllSymbols
(
fileCheckResults
:
FSharpCheckFileResults
)
=
if
Settings
.
IntelliSense
.
ShowAllSymbols
then
assemblyContentProvider
.
GetAllEntitiesInProjectAndReferencedAssemblies
(
fileCheckResults
)
else
[]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录