Merge pull request #5 from alexnask/modernize_code
Switched to anonymous struct and enum literals. Thanks alexnask!
This commit is contained in:
		
						commit
						92a03ab9d2
					
				
							
								
								
									
										108
									
								
								src/main.zig
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								src/main.zig
									
									
									
									
									
								
							@ -45,12 +45,12 @@ pub fn log(comptime fmt: []const u8, args: var) !void {
 | 
			
		||||
 | 
			
		||||
    try send(types.Notification{
 | 
			
		||||
        .method = "window/logMessage",
 | 
			
		||||
        .params = types.NotificationParams{
 | 
			
		||||
            .LogMessageParams = types.LogMessageParams{
 | 
			
		||||
                .@"type" = types.MessageType.Log,
 | 
			
		||||
                .message = message
 | 
			
		||||
        .params = .{
 | 
			
		||||
            .LogMessageParams = .{
 | 
			
		||||
                .@"type" = .Log,
 | 
			
		||||
                .message = message,
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        },
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -71,9 +71,9 @@ pub fn respondGeneric(id: i64, response: []const u8) !void {
 | 
			
		||||
 | 
			
		||||
pub fn openDocument(uri: []const u8, text: []const u8) !void {
 | 
			
		||||
    const du = try std.mem.dupe(allocator, u8, uri);
 | 
			
		||||
    _ = try documents.put(du, types.TextDocument{
 | 
			
		||||
    _ = try documents.put(du, .{
 | 
			
		||||
        .uri = du,
 | 
			
		||||
        .text = try std.mem.dupe(allocator, u8, text)
 | 
			
		||||
        .text = try std.mem.dupe(allocator, u8, text),
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -93,18 +93,18 @@ pub fn publishDiagnostics(document: types.TextDocument) !void {
 | 
			
		||||
            var fbs = std.io.fixedBufferStream(&mem_buffer);
 | 
			
		||||
            _ = try tree.renderError(err, fbs.outStream());
 | 
			
		||||
 | 
			
		||||
            try diagnostics.append(types.Diagnostic{
 | 
			
		||||
                .range = types.Range{
 | 
			
		||||
                    .start = types.Position{
 | 
			
		||||
            try diagnostics.append(.{
 | 
			
		||||
                .range = .{
 | 
			
		||||
                    .start = .{
 | 
			
		||||
                        .line = @intCast(i64, loc.line),
 | 
			
		||||
                        .character = @intCast(i64, loc.column)
 | 
			
		||||
                        .character = @intCast(i64, loc.column),
 | 
			
		||||
                    },
 | 
			
		||||
                    .end = types.Position{
 | 
			
		||||
                    .end = .{
 | 
			
		||||
                        .line = @intCast(i64, loc.line),
 | 
			
		||||
                        .character = @intCast(i64, loc.column)
 | 
			
		||||
                    }
 | 
			
		||||
                        .character = @intCast(i64, loc.column),
 | 
			
		||||
                    },
 | 
			
		||||
                },
 | 
			
		||||
                .severity = types.DiagnosticSeverity.Error,
 | 
			
		||||
                .severity = .Error,
 | 
			
		||||
                .code = @tagName(err.*),
 | 
			
		||||
                .source = "zls",
 | 
			
		||||
                .message = fbs.getWritten(),
 | 
			
		||||
@ -121,18 +121,18 @@ pub fn publishDiagnostics(document: types.TextDocument) !void {
 | 
			
		||||
                    if (func.name_token) |name_token| {
 | 
			
		||||
                        const loc = tree.tokenLocation(0, name_token);
 | 
			
		||||
                        if (func.extern_export_inline_token == null and !analysis.isCamelCase(tree.tokenSlice(name_token))) {
 | 
			
		||||
                            try diagnostics.append(types.Diagnostic{
 | 
			
		||||
                                .range = types.Range{
 | 
			
		||||
                                    .start = types.Position{
 | 
			
		||||
                            try diagnostics.append(.{
 | 
			
		||||
                                .range = .{
 | 
			
		||||
                                    .start = .{
 | 
			
		||||
                                        .line = @intCast(i64, loc.line),
 | 
			
		||||
                                        .character = @intCast(i64, loc.column)
 | 
			
		||||
                                        .character = @intCast(i64, loc.column),
 | 
			
		||||
                                    },
 | 
			
		||||
                                    .end = types.Position{
 | 
			
		||||
                                    .end = .{
 | 
			
		||||
                                        .line = @intCast(i64, loc.line),
 | 
			
		||||
                                        .character = @intCast(i64, loc.column)
 | 
			
		||||
                                    }
 | 
			
		||||
                                        .character = @intCast(i64, loc.column),
 | 
			
		||||
                                    },
 | 
			
		||||
                                },
 | 
			
		||||
                                .severity = types.DiagnosticSeverity.Information,
 | 
			
		||||
                                .severity = .Information,
 | 
			
		||||
                                .code = "BadStyle",
 | 
			
		||||
                                .source = "zls",
 | 
			
		||||
                                .message = "Callables should be camelCase"
 | 
			
		||||
@ -147,11 +147,11 @@ pub fn publishDiagnostics(document: types.TextDocument) !void {
 | 
			
		||||
 | 
			
		||||
    try send(types.Notification{
 | 
			
		||||
        .method = "textDocument/publishDiagnostics",
 | 
			
		||||
        .params = types.NotificationParams{
 | 
			
		||||
            .PublishDiagnosticsParams = types.PublishDiagnosticsParams{
 | 
			
		||||
        .params = .{
 | 
			
		||||
            .PublishDiagnosticsParams = .{
 | 
			
		||||
                .uri = document.uri,
 | 
			
		||||
                .diagnostics = diagnostics.toOwnedSlice()
 | 
			
		||||
            }
 | 
			
		||||
                .diagnostics = diagnostics.toOwnedSlice(),
 | 
			
		||||
            },
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
@ -174,28 +174,28 @@ pub fn completeGlobal(id: i64, document: types.TextDocument) !void {
 | 
			
		||||
                const func = decl.cast(std.zig.ast.Node.FnProto).?;
 | 
			
		||||
                var doc_comments = try analysis.getDocComments(allocator, tree, decl);
 | 
			
		||||
                var doc = types.MarkupContent{
 | 
			
		||||
                    .kind = types.MarkupKind.Markdown,
 | 
			
		||||
                    .value = doc_comments orelse ""
 | 
			
		||||
                    .kind = .Markdown,
 | 
			
		||||
                    .value = doc_comments orelse "",
 | 
			
		||||
                };
 | 
			
		||||
                try completions.append(types.CompletionItem{
 | 
			
		||||
                try completions.append(.{
 | 
			
		||||
                    .label = tree.tokenSlice(func.name_token.?),
 | 
			
		||||
                    .kind = types.CompletionItemKind.Function,
 | 
			
		||||
                    .kind = .Function,
 | 
			
		||||
                    .documentation = doc,
 | 
			
		||||
                    .detail = analysis.getFunctionSignature(tree, func)
 | 
			
		||||
                    .detail = analysis.getFunctionSignature(tree, func),
 | 
			
		||||
                });
 | 
			
		||||
            },
 | 
			
		||||
            .VarDecl => {
 | 
			
		||||
                const var_decl = decl.cast(std.zig.ast.Node.VarDecl).?;
 | 
			
		||||
                var doc_comments = try analysis.getDocComments(allocator, tree, decl);
 | 
			
		||||
                var doc = types.MarkupContent{
 | 
			
		||||
                    .kind = types.MarkupKind.Markdown,
 | 
			
		||||
                    .value = doc_comments orelse ""
 | 
			
		||||
                    .kind = .Markdown,
 | 
			
		||||
                    .value = doc_comments orelse "",
 | 
			
		||||
                };
 | 
			
		||||
                try completions.append(types.CompletionItem{
 | 
			
		||||
                try completions.append(.{
 | 
			
		||||
                    .label = tree.tokenSlice(var_decl.name_token),
 | 
			
		||||
                    .kind = types.CompletionItemKind.Variable,
 | 
			
		||||
                    .kind = .Variable,
 | 
			
		||||
                    .documentation = doc,
 | 
			
		||||
                    .detail = analysis.getVariableSignature(tree, var_decl)
 | 
			
		||||
                    .detail = analysis.getVariableSignature(tree, var_decl),
 | 
			
		||||
                });
 | 
			
		||||
            },
 | 
			
		||||
            else => {}
 | 
			
		||||
@ -205,12 +205,12 @@ pub fn completeGlobal(id: i64, document: types.TextDocument) !void {
 | 
			
		||||
 | 
			
		||||
    try send(types.Response{
 | 
			
		||||
        .id = .{.Integer = id},
 | 
			
		||||
        .result = types.ResponseParams{
 | 
			
		||||
            .CompletionList = types.CompletionList{
 | 
			
		||||
        .result = .{
 | 
			
		||||
            .CompletionList = .{
 | 
			
		||||
                .isIncomplete = false,
 | 
			
		||||
                .items = completions.toOwnedSlice()
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
                .items = completions.toOwnedSlice(),
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -305,29 +305,29 @@ pub fn processJsonRpc(json: []const u8) !void {
 | 
			
		||||
 | 
			
		||||
                for (data.builtins) |builtin, i| {
 | 
			
		||||
                    var cutoff = std.mem.indexOf(u8, builtin, "(") orelse builtin.len;
 | 
			
		||||
                    builtin_completions[i] = types.CompletionItem{
 | 
			
		||||
                    builtin_completions[i] = .{
 | 
			
		||||
                        .label = builtin[0..cutoff],
 | 
			
		||||
                        .kind = types.CompletionItemKind.Function,
 | 
			
		||||
                        .kind = .Function,
 | 
			
		||||
                        
 | 
			
		||||
                        .filterText = builtin[1..cutoff],
 | 
			
		||||
                        .insertText = builtin[1..],
 | 
			
		||||
                        .insertTextFormat = types.InsertTextFormat.Snippet,
 | 
			
		||||
                        .insertTextFormat = .Snippet,
 | 
			
		||||
                        .detail = data.builtin_details[i],
 | 
			
		||||
                        .documentation = types.MarkupContent{
 | 
			
		||||
                            .kind = types.MarkupKind.Markdown,
 | 
			
		||||
                            .value = data.builtin_docs[i]
 | 
			
		||||
                        }
 | 
			
		||||
                        .documentation = .{
 | 
			
		||||
                            .kind = .Markdown,
 | 
			
		||||
                            .value = data.builtin_docs[i],
 | 
			
		||||
                        },
 | 
			
		||||
                    };
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                try send(types.Response{
 | 
			
		||||
                    .id = .{.Integer = id},
 | 
			
		||||
                    .result = types.ResponseParams{
 | 
			
		||||
                        .CompletionList = types.CompletionList{
 | 
			
		||||
                    .result = .{
 | 
			
		||||
                        .CompletionList = .{
 | 
			
		||||
                            .isIncomplete = false,
 | 
			
		||||
                            .items = builtin_completions[0..]
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                            .items = builtin_completions[0..],
 | 
			
		||||
                        },
 | 
			
		||||
                    },
 | 
			
		||||
                });
 | 
			
		||||
            } else if (char != '.') {
 | 
			
		||||
                try completeGlobal(id, document);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user