@@ -34,7 +34,6 @@ type internal FSharpCompletionProvider
3434inherit CompletionProvider()
3535
3636static let userOpName = " CompletionProvider"
37- static let completionTriggers = [| '.' |]
3837static let declarationItemsCache = ConditionalWeakTable< string, FSharpDeclarationListItem>()
3938static let [<Literal>] NameInCodePropName = " NameInCode"
4039static let [<Literal>] FullNamePropName = " FullName"
@@ -87,18 +86,15 @@ type internal FSharpCompletionProvider
8786let triggerPosition = caretPosition- 1
8887let c = sourceText.[ triggerPosition]
8988
90- if completionTriggers|> Array.contains cthen
91- true
92-
9389// do not trigger completion if it's not single dot, i.e. range expression
94- elif triggerPosition > 0 && sourceText.[ triggerPosition- 1 ] = '.' then
90+ if not Settings.IntelliSense.ShowAfterCharIsTyped && sourceText.[ triggerPosition- 1 ] = '.' then
9591false
9692
9793// Trigger completion if we are on a valid classification type
9894else
9995let documentId , filePath , defines = getInfo()
10096 CompletionUtils.shouldProvideCompletion( documentId, filePath, defines, sourceText, triggerPosition) &&
101- ( Settings.IntelliSense.ShowAfterCharIsTyped&& CompletionUtils.isStartingNewWord( sourceText, triggerPosition))
97+ ( c = '.' || ( Settings.IntelliSense.ShowAfterCharIsTyped&& CompletionUtils.isStartingNewWord( sourceText, triggerPosition) ))
10298
10399static member ProvideCompletionsAsyncAux ( checker : FSharpChecker , sourceText : SourceText , caretPosition : int , options : FSharpProjectOptions , filePath : string ,
104100textVersionHash : int , getAllSymbols : unit -> AssemblySymbol list ) =