diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2019-11-22 23:26:32 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2019-11-22 23:26:32 +0800 |
commit | d0ff66c9abe9d6abbca12fd811e0c3cb69c1033a (patch) | |
tree | bb34518d70b85de7656dbdbe958dfa221a3ff3b3 /script/src/uri.lua | |
parent | 0a2c2ad15e1ec359171fb0dd4c72e57c5b66e9ba (diff) | |
download | lua-language-server-d0ff66c9abe9d6abbca12fd811e0c3cb69c1033a.zip |
整理一下目录结构
Diffstat (limited to 'script/src/uri.lua')
-rw-r--r-- | script/src/uri.lua | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/script/src/uri.lua b/script/src/uri.lua new file mode 100644 index 00000000..9053447c --- /dev/null +++ b/script/src/uri.lua @@ -0,0 +1,29 @@ +local fs = require 'bee.filesystem' +local platform = require 'bee.platform' +local sandbox = require 'sandbox' +local luaUriPath = (ROOT / 'src' / '3rd' / 'lua-uri'):string() +local URI = sandbox('uri.lua', luaUriPath, io.open) +local URI_FILE = sandbox('uri/file.lua', luaUriPath, io.open) +local OS = platform.OS == 'Windows' and 'win32' or 'unix' + +local function decode(uri) + local obj = URI:new(uri) + if not obj.filesystem_path then + return nil + end + local fullPath = obj:filesystem_path(OS) + local path = fs.path(fullPath) + return path +end + +local function encode(path) + local fullPath = fs.absolute(ROOT / path) + local obj = URI_FILE.make_file_uri(fullPath:string(), OS) + local uri = obj:uri() + return uri +end + +return { + encode = encode, + decode = decode, +} |