summaryrefslogtreecommitdiff
path: root/script/method/textDocument/didChange.lua
blob: 82e6c0963bcbde702237082e7b7e0b3e1a01d762 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
return function (lsp, params)
    local doc = params.textDocument
    local change = params.contentChanges
    if lsp.workspace then
        local path = lsp.workspace:relativePathByUri(doc.uri)
        if not path or not lsp.workspace:isLuaFile(path) then
            return
        end
        if not lsp:isOpen(doc.uri) and lsp.workspace.gitignore(path:string()) then
            return
        end
    end
    -- TODO 支持差量更新
    lsp:saveText(doc.uri, doc.version, change[1].text)
    return true
end