Compare commits

...

2 Commits

Author SHA1 Message Date
LordMZTE f95fe9d877
mzteinit: put PID and UID in socket path 2024-02-26 16:19:16 +01:00
LordMZTE d07bb2e947
nix support 2024-02-26 16:19:03 +01:00
4 changed files with 15 additions and 12 deletions

View File

@ -0,0 +1,3 @@
;; Use 2-space indentation for nix
(set vim.o.shiftwidth 2)
(set vim.o.tabstop 2)

View File

@ -7,7 +7,8 @@
(when (not args)
(set args {}))
(tset args :on_attach (if args.on_attach
`(fn [client# bufnr#] (mztenv.lsp.onAttach client# bufnr#)
`(fn [client# bufnr#]
(mztenv.lsp.onAttach client# bufnr#)
(,args.on_attach client# bufnr#))
`mztenv.lsp.onAttach))
(tset args :capabilities `caps)
@ -53,6 +54,7 @@
true)]
:telemetry {:enable false}}}})
(setup :nil_ls {:settings {:nil {:formatting {:command [:nixpkgs-fmt]}}}})
(setup :ocamllsp)
(setup :prosemd_lsp)
(setup :racket_langserver)

View File

@ -134,6 +134,7 @@ pub fn populateEnvironment(env: *std.process.EnvMap) !bool {
var b = delimitedWriter(bufstream.writer(), ':');
for ([_][]const u8{
".nix-profile/bin",
".mix/escripts",
".cargo/bin",
".local/bin",

View File

@ -115,18 +115,15 @@ fn tryMain() !void {
var srv: ?Server = null;
if (env_map.get("XDG_RUNTIME_DIR")) |xrd| {
const sockaddr = try std.fs.path.join(alloc, &.{ xrd, "mzteinit.sock" });
errdefer alloc.free(sockaddr);
var sockaddr_buf: [std.fs.MAX_PATH_BYTES]u8 = undefined;
const sockaddr = try std.fmt.bufPrintZ(
&sockaddr_buf,
"{s}/mzteinit-{}-{}.sock",
.{ xrd, std.os.linux.getuid(), std.os.linux.getpid() },
);
try msg("starting socket server @ {s}...", .{sockaddr});
std.fs.cwd().deleteFile(sockaddr) catch |e| {
switch (e) {
error.FileNotFound => {},
else => return e,
}
};
srv = try Server.init(alloc, sockaddr, &env_mtx);
errdefer srv.?.ss.deinit();
(try std.Thread.spawn(.{}, Server.run, .{&srv.?})).detach();
@ -239,8 +236,8 @@ fn ui(buf_writer: anytype, entries: []command.Command) !command.Command {
const old_termios = try std.os.tcgetattr(std.os.STDIN_FILENO);
var new_termios = old_termios;
new_termios.lflag &= ~std.os.linux.ICANON; // No line buffering
new_termios.lflag &= ~std.os.linux.ECHO; // No echoing stuff
new_termios.lflag.ICANON = false; // No line buffering
new_termios.lflag.ECHO = false; // No echoing stuff
try std.os.tcsetattr(std.os.STDIN_FILENO, .NOW, new_termios);
var cmd: ?command.Command = null;