 
   loadConfig: ->
     ext = path.extname @configFilePath
+    @removeCache(@configFilePath)
 
     switch ext
-      when '.js', '.coffee'
-        config = require(@configFilePath)
-        @removeCache(@configFilePath)
-
-      when '.json'
+      when '.js', '.json', '.coffee'
         config = require @configFilePath
-        @removeCache(@configFilePath)
 
       when '.json5'
         require 'json5/lib/require'
         config = require @configFilePath
-        @removeCache(@configFilePath)
 
       when '.cson'
         CSON = require 'cson'
         config = CSON.requireCSONFile @configFilePath
-        @removeCache(@configFilePath)
 
     if @projectConfigFilePath
       ext = path.extname @projectConfigFilePath
+      @removeCache(@projectConfigFilePath)
 
       switch ext
-        when '.js', '.coffee'
-          projConfig = require(@projectConfigFilePath)
-          @removeCache(@projectConfigFilePath)
-
-        when '.json'
+        when '.js', '.json', '.coffee'
           projConfig = require @projectConfigFilePath
-          @removeCache(@projectConfigFilePath)
 
         when '.json5'
           require 'json5/lib/require'
           projConfig = require @projectConfigFilePath
-          @removeCache(@projectConfigFilePath)
 
         when '.cson'
           CSON = require 'cson'
           projConfig = CSON.requireCSONFile @projectConfigFilePath
-          @removeCache(@projectConfigFilePath)
 
       for i of projConfig
         config.push projConfig[i]

  currentGrammar: null
  currentProject: null
  buttonTypes: []
  watchList: []
  functionConditions: []
  functionPoll: null
  pollTimeout: 0
  reloadToolBarNotification: false

  config:
    persistentProjectToolBar:

    @toolBar?.removeItems()

  deactivate: ->
    @configWatcher?.close()
    @configWatcher = null
    @projectConfigWatcher?.close()
    @projectConfigWatcher = null
    @subscriptions.dispose()
    @subscriptions = null
    @removeButtons()
