summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
Diffstat (limited to 'script')
-rw-r--r--script/files.lua42
1 files changed, 4 insertions, 38 deletions
diff --git a/script/files.lua b/script/files.lua
index 765ac88a..2b0e84d4 100644
--- a/script/files.lua
+++ b/script/files.lua
@@ -353,9 +353,12 @@ end
function m.addRef(uri)
local file = m.fileMap[uri]
if not file then
- return
+ return nil
end
file._ref = (file._ref or 0) + 1
+ return function ()
+ m.delRef(uri)
+ end
end
function m.delRef(uri)
@@ -389,43 +392,6 @@ function m.remove(uri)
m.onWatch('remove', originUri)
end
---- 移除所有文件
-function m.removeAll()
- local ws = require 'workspace.workspace'
- m.globalVersion = m.globalVersion + 1
- await.close('files.version')
- m.onWatch('version')
- m._pairsCache = nil
- for uri in pairs(m.fileMap) do
- if not m.libraryMap[uri] then
- m.fileCount = m.fileCount - 1
- m.fileMap[uri] = nil
- m.astMap[uri] = nil
- m.onWatch('remove', uri)
- end
- end
- ws.flushCache()
- --m.notifyCache = {}
-end
-
---- 移除所有关闭的文件
-function m.removeAllClosed()
- m.globalVersion = m.globalVersion + 1
- await.close('files.version')
- m.onWatch('version')
- m._pairsCache = nil
- for uri in pairs(m.fileMap) do
- if not m.openMap[uri]
- and not m.libraryMap[uri] then
- m.fileCount = m.fileCount - 1
- m.fileMap[uri] = nil
- m.astMap[uri] = nil
- m.onWatch('remove', uri)
- end
- end
- --m.notifyCache = {}
-end
-
--- 获取一个包含所有文件uri的数组
---@return uri[]
function m.getAllUris()