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

Commit5739335

Browse files
vasily-kirichenkoKevinRansom
authored andcommitted
Fix a number of completion issues (dotnet#2398)
* remove `.. ..` operator from completion list* filter out operator members from completion list* do not show completion inside hash directives
1 parentdd334b2 commit5739335

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

‎src/fsharp/PrettyNaming.fs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ module internal Microsoft.FSharp.Compiler.PrettyNaming
135135
/// Returns `true` if given string is an operator display name, e.g. ( |>> )
136136
letIsOperatorName(name:string)=
137137
letname=if name.StartsWith"("&& name.EndsWith" )"then name.[2..name.Length-3]else name
138-
letres= name|> Seq.forall(fun c-> opCharSet.Contains c&& c<>' ')
138+
// there is single operator containing a space - range operator with step: `.. ..`
139+
letres= name=".. .."|| name|> Seq.forall(fun c-> opCharSet.Contains c&& c<>' ')
139140
res
140141

141142
letIsMangledOpName(n:string)=

‎src/fsharp/vs/ServiceDeclarations.fs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,14 +1397,14 @@ type FSharpDeclarationListInfo(declarations: FSharpDeclarationListItem[]) =
13971397
letisOperatorItem(name,item)=
13981398
match itemwith
13991399
|[Item.Value_]
1400-
|[Item.MethodGroup(_,[_],_)]-> IsOperatorName name
1400+
|[Item.MethodGroup_]-> IsOperatorName name
14011401
|[Item.UnionCase_]-> IsOperatorName name
14021402
|_->false
14031403

14041404
letisFSharpList name=(name="[]")// list shows up as a Type and a UnionCase, only such entity with a symbolic name, but want to filter out of intellisense
14051405

14061406
items|> List.filter(fun(name,items)->not(isOperatorItem(name, items))&&not(isFSharpList name))
1407-
1407+
14081408
letdecls=
14091409
// Filter out duplicate names
14101410
items|> List.map(fun(nm,itemsWithSameName)->

‎src/fsharp/vs/ServiceParseTreeWalk.fs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ module internal AstTraversal =
7474
// VisitRecordField allows overriding behavior when visiting l.h.s. of constructed record instances
7575
abstractVisitRecordField :TraversePath*SynExproption*LongIdentWithDotsoption->'Toption
7676
defaultthis.VisitRecordField(_path,_copyOpt,_recordField)= None
77+
// VisitHashDirective allows overriding behavior when visiting hash directives in FSX scripts, like #r, #load and #I.
78+
abstractVisitHashDirective :range->'Toption
79+
defaultthis.VisitHashDirective(_)= None
7780

7881
letdive node range project=
7982
range,(fun()-> project node)
@@ -143,7 +146,7 @@ module internal AstTraversal =
143146
| SynModuleDecl.Exception(_synExceptionDefn,_range)-> None
144147
| SynModuleDecl.Open(_longIdent,_range)-> None
145148
| SynModuleDecl.Attributes(_synAttributes,_range)-> None
146-
| SynModuleDecl.HashDirective(_parsedHashDirective,_range)->None
149+
| SynModuleDecl.HashDirective(_parsedHashDirective,range)->visitor.VisitHashDirective range
147150
| SynModuleDecl.NamespaceFragment(synModuleOrNamespace)-> traverseSynModuleOrNamespace path synModuleOrNamespace
148151
visitor.VisitModuleDecl(defaultTraverse, decl)
149152

‎src/fsharp/vs/ServiceUntypedParse.fs‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1171,5 +1171,10 @@ module UntypedParseImpl =
11711171
| None-> Some(CompletionContext.Invalid)// A $ .B -> no completion list
11721172
|_-> None
11731173

1174-
memberthis.VisitBinding(defaultTraverse,synBinding)= defaultTraverse synBinding}
1174+
memberthis.VisitBinding(defaultTraverse,synBinding)= defaultTraverse synBinding
1175+
1176+
memberthis.VisitHashDirective(range)=
1177+
if rangeContainsPos range posthen Some CompletionContext.Invalid
1178+
else None}
1179+
11751180
AstTraversal.Traverse(pos, pt, walker)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp