From 3021033d1b11e916c93cfe78dcc9056366837ff6 Mon Sep 17 00:00:00 2001 From: sumneko Date: Wed, 8 May 2019 14:37:49 +0800 Subject: =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/method/initialized.lua | 6 +++--- .../src/method/workspace/didChangeWatchedFiles.lua | 7 +++++-- server/src/service.lua | 2 +- server/src/workspace.lua | 21 +++++++++++++-------- 4 files changed, 22 insertions(+), 14 deletions(-) (limited to 'server/src') diff --git a/server/src/method/initialized.lua b/server/src/method/initialized.lua index ab05c2b3..05abffd7 100644 --- a/server/src/method/initialized.lua +++ b/server/src/method/initialized.lua @@ -16,9 +16,9 @@ local function initAfterConfig(lsp, firstScope) registerOptions = { watchers = { { - globPattern = '**/*.lua', - kind = 1 | 4, -- Create | Change | Delete - }, + globPattern = '**/', + kind = 1 | 4, + } }, }, }, diff --git a/server/src/method/workspace/didChangeWatchedFiles.lua b/server/src/method/workspace/didChangeWatchedFiles.lua index a5fecac3..7e1afb92 100644 --- a/server/src/method/workspace/didChangeWatchedFiles.lua +++ b/server/src/method/workspace/didChangeWatchedFiles.lua @@ -1,3 +1,5 @@ +local fs = require 'bee.filesystem' + local FileChangeType = { Created = 1, Changed = 2, @@ -10,10 +12,11 @@ return function (lsp, params) end local needReset for _, change in ipairs(params.changes) do + local path = lsp.workspace:uriDecode(change.uri) if change.type == FileChangeType.Created then - lsp.workspace:addFile(change.uri) + lsp.workspace:addFile(path) elseif change.type == FileChangeType.Deleted then - lsp.workspace:removeFile(change.uri) + lsp.workspace:removeFile(path) end if lsp:getVM(change.uri) then needReset = true diff --git a/server/src/service.lua b/server/src/service.lua index 9db272af..81b5b98e 100644 --- a/server/src/service.lua +++ b/server/src/service.lua @@ -826,7 +826,7 @@ function mt:_testMemory() )) log.debug('test memory: ', ('%.3f'):format(os.clock() - clock)) - self:_testDeadValue() + --self:_testDeadValue() end function mt:onTick() diff --git a/server/src/workspace.lua b/server/src/workspace.lua index 9920964f..87cc4c98 100644 --- a/server/src/workspace.lua +++ b/server/src/workspace.lua @@ -205,18 +205,23 @@ function mt:isLuaFile(path) return false end -function mt:addFile(uri) - local path = self:uriDecode(uri) - if self:isLuaFile(path) then - local name = getFileName(path) - self.files[name] = uri - self.lsp:readText(uri, path) +function mt:addFile(path) + if not self:isLuaFile(path) then + return end + local name = getFileName(path) + local uri = self:uriEncode(path) + self.files[name] = uri + self.lsp:readText(uri, path) end -function mt:removeFile(uri) - local name = getFileName(self:uriDecode(uri)) +function mt:removeFile(path) + local name = getFileName(path) + if not self.files[name] then + return + end self.files[name] = nil + local uri = self:uriEncode(path) self.lsp:removeText(uri) end -- cgit v1.2.3