anchor.diff:            | _ -> true
   
         Debug.WriteLine("allowAnyStale = {0}", allowAnyStale)
  -
         x.CodeCompletionCommandImpl(context, allowAnyStale, dottedInto = true, ctrlSpace = false)
   
     /// Completion was triggered explicitly using Ctrl+Space or by the function above  
     override x.CodeCompletionCommand(context) =
  -      x.CodeCompletionCommandImpl(context, allowAnyStale = true, dottedInto = false, ctrlSpace = true)
  +      let completionIsDot = x.Document.Editor.GetCharAt(context.TriggerOffset - 1) = '.'
  +      x.CodeCompletionCommandImpl(context, allowAnyStale = true, dottedInto = completionIsDot, ctrlSpace = true)
   
     member x.CodeCompletionCommandImpl(context, allowAnyStale, dottedInto, ctrlSpace) =
       let result = CompletionDataList()
       let doc = x.Document
  +    let fileName = doc.FileName.FullPath.ToString()
       try
  -      let projFile, files, args = MonoDevelop.getCheckerArgs(doc.Project, doc.FileName.FullPath.ToString())
  +      let projFile, files, args = MonoDevelop.getCheckerArgs(doc.Project, fileName)
         // Try to get typed information from LanguageService (with the specified timeout)
         let stale = if allowAnyStale then AllowStaleResults.MatchingFileName else AllowStaleResults.MatchingSource
         let typedParseResults = 
  -          MDLanguageService.Instance.GetTypedParseResultWithTimeout(projFile, doc.FileName.FullPath.ToString(), doc.Editor.Text, files, args, stale, ServiceSettings.blockingTimeout)
  +          MDLanguageService.Instance.GetTypedParseResultWithTimeout(projFile, fileName, doc.Editor.Text, files, args, stale, ServiceSettings.blockingTimeout)
             |> Async.RunSynchronously
         lastCharDottedInto <- dottedInto
         match typedParseResults with
  
positive.code:                      return methsOpt }, ServiceSettings.blockingTimeout)
  
        match methsOpt with 
        | None -> Debug.WriteLine("Getting Parameter Info: no methods")
                  null 
        | Some(name, meths) -> Debug.WriteLine("Getting Parameter Info: methods!")
                               new ParameterDataProvider (startOffset, name, meths) :> _ 
      with ex ->
          LoggingService.LogError ("FSharp, Error in HandleParameterCompletion", ex)
          null
  
    override x.KeyPress (key, keyChar, modifier) =
  
negative.code:                       CompletionCategory = compilerIdentifierCategory,
                        DisplayFlags = DisplayFlags.DescriptionHasMarkup) :> _ ]
  
    // Until we build some functionality around a reversing tokenizer that detect this and other contexts
    // A crude detection of being inside an auto property decl: member val Foo = 10 with get,$ set
    let isAnAutoProperty (editor: Mono.TextEditor.TextEditorData) offset =
      let lastStart = editor.FindPrevWordOffset(offset)
      let lastEnd = editor.FindCurrentWordEnd(lastStart)
      let lastWord = editor.GetTextBetween(lastStart, lastEnd)
  
      let prevStart = editor.FindPrevWordOffset(lastStart)
      let prevEnd = editor.FindCurrentWordEnd(prevStart)
      let previousWord = editor.GetTextBetween(prevStart, prevEnd)
      lastWord = "get" && previousWord = "with"
  
    override x.Initialize() = 
        do base.Document.Editor.IndentationTracker <- FSharpIndentationTracker(base.Document) :> Mono.TextEditor.IIndentationTracker 
        base.Initialize()
  