diff --git a/lua/telescope/_extensions/getOS.lua b/lua/telescope/_extensions/getOS.lua new file mode 100644 index 0000000..d0af981 --- /dev/null +++ b/lua/telescope/_extensions/getOS.lua @@ -0,0 +1,10 @@ +return function() + -- ask LuaJIT first + if jit then return jit.os end + + -- Unix, Linux variants + local fh, _ = assert(io.popen('uname -o 2>/dev/null', 'r')) + if fh then return fh:read() end + + return 'Windows' +end diff --git a/lua/telescope/_extensions/http.lua b/lua/telescope/_extensions/http.lua index 8626db6..0e612f1 100644 --- a/lua/telescope/_extensions/http.lua +++ b/lua/telescope/_extensions/http.lua @@ -5,8 +5,15 @@ if not ok then end local list = require 'telescope._extensions.http.list' +local osname = require 'telescope._extensions.getOS' -local default_opts = { open_url = 'xdg-open %s' } +local open_url_os = { + ['OSX'] = { open_url = 'open %s' }, + ['Windows'] = { open_url = 'start %s' }, +} + +local default_opts = open_url_os[osname()] +if not default_opts then default_opts = { open_url = 'xdg-open %s' } end local opts = {} return telescope.register_extension { diff --git a/readme.md b/readme.md index b0c353e..257bed2 100644 --- a/readme.md +++ b/readme.md @@ -31,8 +31,10 @@ require('telescope').load_extension 'http' require('telescope').setup { extensions = { http = { - -- How the mozilla url is opened. By default: - open_url = 'xdg-open %s' + -- How the mozilla url is opened. By default will be configured based on OS: + open_url = 'xdg-open %s' -- UNIX + -- open_url = 'open %s' -- OSX + -- open_url = 'start %s' -- Windows } } }