anchor.diff:  
   
   open Microsoft.FSharp.Compiler.Range
  +
  +[<AutoOpen>]
  +module Helper = 
  +  type UntypedParseInfo with 
  +    // GetNavigationItems is not 100% solid and throws occasional exceptions
  +    member x.GetNavigationItemsDeclarationsSafe() = 
  +        try x.GetNavigationItems().Declarations
  +        with _ -> 
  +            Debug.Assert(false, "couldn't update navigation items, ignoring")  
  +            [| |]
  +
  +
   type FSharpPathExtension() =
       inherit TextEditorExtension()
   
  
positive.code:                 let cursor = (docloc.Column, docloc.Line)
                  posGeq cursor start && posGeq finish cursor
  
              let toplevel = ast.Untyped.GetNavigationItems().Declarations
  
              #if DEBUG
              let allthings = [| for tl in  toplevel do yield (tl.Declaration.Name, tl.Nested |> Array.map (fun n -> n.Name)) |]
  
negative.code:         memberList.Clear()
          match tag with
          | :? TypedParseResult as tpr ->
              let navitems = tpr.Untyped.GetNavigationItemsDeclarationsSafe()
              for decl in navitems do
                  memberList.Add(decl.Declaration)
          | :? (TypedParseResult * string) as typeAndFilter ->
              let tpr, filter = typeAndFilter 
              let navitems = tpr.Untyped.GetNavigationItemsDeclarationsSafe()
              for decl in navitems do
                  if decl.Declaration.Name.StartsWith(filter) then
                      memberList.Add(decl.Declaration)
          | :? TopLevelDeclaration as tld ->
  