52 lines
1.2 KiB
Lua
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)
|