anchor.diff:      let docEventListener = new DocumentEventListener ([ViewChange.layoutEvent view; ViewChange.caretEvent view], 
                                                         500us, updateAtCaretPosition)
   
  -    let openNamespace (_snapshot: SnapshotSpan) _ns = 
  +    let openNamespace (snapshotSpan: SnapshotSpan) line col ns = 
           use transaction = textUndoHistory.CreateTransaction(Resource.recordGenerationCommandName)
  -        //let currentLine = snapshot.GetLineFromLineNumber(insertionPos.InsertionPos.Line-1).Start.Position + insertionPos.InsertionPos.Column
  +        let line = snapshotSpan.Snapshot.GetLineFromLineNumber(line).Start.Position + col
           //buffer.Insert(currentLine, stub) |> ignore
  +        snapshotSpan.Snapshot.TextBuffer.Insert (line, "open " + ns) |> ignore
           transaction.Complete()
   
       let fullyQualifySymbol (snapshotSpan: SnapshotSpan) fullSymbolName = 
  
positive.code:         snapshotSpan.Snapshot.TextBuffer.Replace (snapshotSpan.Span, fullSymbolName) |> ignore
          transaction.Complete()
  
      let openNamespaceAction snapshot ns =
          { new ISmartTagAction with
              member x.ActionSets = null
              member x.DisplayText = "open " + ns
              member x.Icon = null
              member x.IsEnabled = true
              member x.Invoke() = openNamespace snapshot ns
          }
  
      let qualifySymbolAction snapshotSpan fullSymbolName =
  
negative.code:             member x.Invoke() = fullyQualifySymbol snapshotSpan fullSymbolName
          }
  
      let getSmartTagActions snapshotSpan candidates _symbol line col =
          let openNamespaceActions = 
              candidates
              |> List.map (fun e -> e.Namespace) 
              |> List.map (openNamespaceAction snapshotSpan line col)
              
          let qualifySymbolActions =
              candidates
  