anchor.diff:                  let projExist = arr |> Array.tryFind(fun a -> a.Split('.') |> fun n -> n.[n.Length - 1]  = "fsproj")
                   match projExist with
                   | Some a -> let path = p + "/" + a
  -                            LanguageService.project path (fun _ -> addStatusNotification "Ready")
  +                            if projects.Contains path |> not then
  +                                projects.Add path
  +                                LanguageService.project path (fun _ -> addStatusNotification "Ready")
                   | None -> addStatusNotification "Ready (.fsproj not found)"
               if JS.isDefined p then Globals.readdir(p, System.Func<NodeJS.ErrnoException, string array, unit>(proj))
               else addStatusNotification "Ready (.fsproj not found)"
  
positive.code:     let mutable statusbar : IStatusBar option = None
      let mutable notification : ITile option = None
      let subscriptions = ResizeArray()
  
      let addStatusNotification status =
          notification |> Option.iter (fun n -> n.destroy())
  
negative.code:         Globals.atom.workspace.onDidChangeActivePaneItem (fun ed -> Globals.setTimeout((fun _ -> TooltipHandler.initialize ed), 500.) |> ignore) |> subscriptions.Add
          Globals.atom.workspace.onDidChangeActivePaneItem (fun ed -> ed |> parseProjectForEditor) |> subscriptions.Add
          Globals.atom.workspace.onDidChangeActivePaneItem (fun ed -> if JS.isDefined ed && JS.isPropertyDefined ed "onDidSave" then ed.onDidSave (fun o -> LanguageService.parseEditor ed (fun _ -> ()) ) |> subscriptions.Add) |> subscriptions.Add
          let t = Globals.atom.on'("FSharp:Highlight", unbox<Function>(HighlighterHandler.handle))
          let t2 = Globals.atom.on'("FSharp:Highlight", unbox<Function>(ErrorPanel.handle))
          t |> subscriptions.Add
          t2 |> subscriptions.Add
  
      let initialize panel =
          let editor = Globals.atom.workspace.getActiveTextEditor()
  