Files
telescope.nvim/scratch/ts_example.lua
2020-12-03 12:39:59 -05:00

52 lines
1.2 KiB
Lua

local uv = vim.loop
local has_ts, _ = pcall(require, 'nvim-treesitter')
if not has_ts then
error("ASKDLFJAKLSJFLASKDFJ")
end
local ts_highlight = require('nvim-treesitter.highlight')
local ts_parsers = require('nvim-treesitter.parsers')
local function readFile(path, callback)
uv.fs_open(path, "r", 438, function(err, fd)
assert(not err, err)
uv.fs_fstat(fd, function(err, stat)
assert(not err, err)
uv.fs_read(fd, stat.size, 0, function(err, data)
assert(not err, err)
uv.fs_close(fd, function(err)
assert(not err, err)
return callback(data)
end)
end)
end)
end)
end
local determine_filetype = function(filepath)
-- Obviously TODO
return "lua"
end
local filepath = "lua/telescope/init.lua"
local load_ts_buffer = function(bufnr, filepath)
local filetype = determine_filetype(filepath)
if not ts_parsers.has_parser(filetype) then
error("TODO CONNI")
end
readFile(filepath, vim.schedule_wrap(function(data)
if not vim.api.nvim_buf_is_valid(bufnr) then
return
end
-- pcall(ts_highlight.detach, bufnr)
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, vim.split(data, "\n"))
ts_highlight.attach(bufnr, filetype)
end))
end
load_ts_buffer(3, filepath)