aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2020-11-09 23:55:10 +0100
committerDanielGavin <danielgavin5@hotmail.com>2020-11-09 23:55:10 +0100
commitb08dcc40c81212755f6143ab47c7bc3dd746417d (patch)
tree16a06d63d6d35f054429b99e61205595b2206d1e /src/server
parentf9416ac2e7ebef3b881305467edad22ea411603e (diff)
wrong format - need odin formatter pls
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin384
1 files changed, 192 insertions, 192 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 1996041..98639c2 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -198,24 +198,24 @@ get_document_position_context :: proc(document: ^Document, position: common.Posi
}
get_document_position :: proc{
- get_document_position_array,
- get_document_position_dynamic_array,
- get_document_position_node,
+ get_document_position_array,
+ get_document_position_dynamic_array,
+ get_document_position_node,
};
get_document_position_array :: proc(array: $A/[]^$T, position_context: ^DocumentPositionContext) {
- for elem, i in array {
- get_document_position(elem, position_context);
- }
+ for elem, i in array {
+ get_document_position(elem, position_context);
+ }
}
get_document_position_dynamic_array :: proc(array: $A/[dynamic]^$T, position_context: ^DocumentPositionContext) {
- for elem, i in array {
- get_document_position(elem, position_context);
- }
+ for elem, i in array {
+ get_document_position(elem, position_context);
+ }
}
@@ -227,211 +227,211 @@ get_document_position_node :: proc(node: ^ast.Node, position_context: ^DocumentP
using ast;
- if node == nil {
- return;
- }
+ if node == nil {
+ return;
+ }
if !(node.pos.offset <= position_context.position && position_context.position <= node.end.offset) {
return;
}
- switch n in node.derived {
- case Bad_Expr:
- case Ident:
+ switch n in node.derived {
+ case Bad_Expr:
+ case Ident:
position_context.identifier = node;
return;
- case Implicit:
- case Undef:
- case Basic_Lit:
- case Ellipsis:
- get_document_position(n.expr, position_context);
- case Proc_Lit:
- get_document_position(n.type, position_context);
+ case Implicit:
+ case Undef:
+ case Basic_Lit:
+ case Ellipsis:
+ get_document_position(n.expr, position_context);
+ case Proc_Lit:
+ get_document_position(n.type, position_context);
if position_in_node(n.body, position_context.position) {
position_context.function = node;
- get_document_position(n.body, position_context);
+ get_document_position(n.body, position_context);
return;
}
- case Comp_Lit:
- get_document_position(n.type, position_context);
- get_document_position(n.elems, position_context);
- case Tag_Expr:
- get_document_position(n.expr, position_context);
- case Unary_Expr:
- get_document_position(n.expr, position_context);
- case Binary_Expr:
- get_document_position(n.left, position_context);
- get_document_position(n.right, position_context);
- case Paren_Expr:
- get_document_position(n.expr, position_context);
+ case Comp_Lit:
+ get_document_position(n.type, position_context);
+ get_document_position(n.elems, position_context);
+ case Tag_Expr:
+ get_document_position(n.expr, position_context);
+ case Unary_Expr:
+ get_document_position(n.expr, position_context);
+ case Binary_Expr:
+ get_document_position(n.left, position_context);
+ get_document_position(n.right, position_context);
+ case Paren_Expr:
+ get_document_position(n.expr, position_context);
case Call_Expr:
- get_document_position(n.expr, position_context);
- get_document_position(n.args, position_context);
- case Selector_Expr:
- get_document_position(n.expr, position_context);
+ get_document_position(n.expr, position_context);
+ get_document_position(n.args, position_context);
+ case Selector_Expr:
+ get_document_position(n.expr, position_context);
if position_in_node(n.field, position_context.position) {
position_context.selector = n.expr;
position_context.field = n.field;
- get_document_position(n.field, position_context);
+ get_document_position(n.field, position_context);
return;
}
- case Index_Expr:
+ case Index_Expr:
get_document_position(n.expr, position_context);
get_document_position(n.index, position_context);
- case Deref_Expr:
- get_document_position(n.expr, position_context);
- case Slice_Expr:
- get_document_position(n.expr, position_context);
- get_document_position(n.low, position_context);
- get_document_position(n.high, position_context);
- case Field_Value:
- get_document_position(n.field, position_context);
- get_document_position(n.value, position_context);
- case Ternary_Expr:
- get_document_position(n.cond, position_context);
- get_document_position(n.x, position_context);
- get_document_position(n.y, position_context);
- case Ternary_If_Expr:
- get_document_position(n.x, position_context);
- get_document_position(n.cond, position_context);
- get_document_position(n.y, position_context);
- case Ternary_When_Expr:
- get_document_position(n.x, position_context);
- get_document_position(n.cond, position_context);
- get_document_position(n.y, position_context);
- case Type_Assertion:
- get_document_position(n.expr, position_context);
- get_document_position(n.type, position_context);
- case Type_Cast:
- get_document_position(n.type, position_context);
- get_document_position(n.expr, position_context);
- case Auto_Cast:
- get_document_position(n.expr, position_context);
- case Bad_Stmt:
- case Empty_Stmt:
- case Expr_Stmt:
- get_document_position(n.expr, position_context);
- case Tag_Stmt:
+ case Deref_Expr:
+ get_document_position(n.expr, position_context);
+ case Slice_Expr:
+ get_document_position(n.expr, position_context);
+ get_document_position(n.low, position_context);
+ get_document_position(n.high, position_context);
+ case Field_Value:
+ get_document_position(n.field, position_context);
+ get_document_position(n.value, position_context);
+ case Ternary_Expr:
+ get_document_position(n.cond, position_context);
+ get_document_position(n.x, position_context);
+ get_document_position(n.y, position_context);
+ case Ternary_If_Expr:
+ get_document_position(n.x, position_context);
+ get_document_position(n.cond, position_context);
+ get_document_position(n.y, position_context);
+ case Ternary_When_Expr:
+ get_document_position(n.x, position_context);
+ get_document_position(n.cond, position_context);
+ get_document_position(n.y, position_context);
+ case Type_Assertion:
+ get_document_position(n.expr, position_context);
+ get_document_position(n.type, position_context);
+ case Type_Cast:
+ get_document_position(n.type, position_context);
+ get_document_position(n.expr, position_context);
+ case Auto_Cast:
+ get_document_position(n.expr, position_context);
+ case Bad_Stmt:
+ case Empty_Stmt:
+ case Expr_Stmt:
+ get_document_position(n.expr, position_context);
+ case Tag_Stmt:
r := cast(^Expr_Stmt)node;
- get_document_position(r.expr, position_context);
- case Assign_Stmt:
- get_document_position(n.lhs, position_context);
- get_document_position(n.rhs, position_context);
- case Block_Stmt:
- get_document_position(n.label, position_context);
- get_document_position(n.stmts, position_context);
- case If_Stmt:
- get_document_position(n.label, position_context);
- get_document_position(n.init, position_context);
- get_document_position(n.cond, position_context);
- get_document_position(n.body, position_context);
- get_document_position(n.else_stmt, position_context);
- case When_Stmt:
- get_document_position(n.cond, position_context);
- get_document_position(n.body, position_context);
- get_document_position(n.else_stmt, position_context);
- case Return_Stmt:
- get_document_position(n.results, position_context);
- case Defer_Stmt:
- get_document_position(n.stmt, position_context);
- case For_Stmt:
- get_document_position(n.label, position_context);
- get_document_position(n.init, position_context);
- get_document_position(n.cond, position_context);
- get_document_position(n.post, position_context);
- get_document_position(n.body, position_context);
- case Range_Stmt:
- get_document_position(n.label, position_context);
- get_document_position(n.val0, position_context);
- get_document_position(n.val1, position_context);
- get_document_position(n.expr, position_context);
- get_document_position(n.body, position_context);
- case Case_Clause:
- get_document_position(n.list, position_context);
- get_document_position(n.body, position_context);
- case Switch_Stmt:
- get_document_position(n.label, position_context);
- get_document_position(n.init, position_context);
- get_document_position(n.cond, position_context);
- get_document_position(n.body, position_context);
- case Type_Switch_Stmt:
- get_document_position(n.label, position_context);
- get_document_position(n.tag, position_context);
- get_document_position(n.expr, position_context);
- get_document_position(n.body, position_context);
- case Branch_Stmt:
- get_document_position(n.label, position_context);
- case Using_Stmt:
- get_document_position(n.list, position_context);
- case Bad_Decl:
- case Value_Decl:
- get_document_position(n.attributes, position_context);
- get_document_position(n.names, position_context);
- get_document_position(n.type, position_context);
- get_document_position(n.values, position_context);
- case Package_Decl:
- case Import_Decl:
- case Foreign_Block_Decl:
- get_document_position(n.attributes, position_context);
- get_document_position(n.foreign_library, position_context);
- get_document_position(n.body, position_context);
- case Foreign_Import_Decl:
- get_document_position(n.name, position_context);
- case Proc_Group:
- get_document_position(n.args, position_context);
- case Attribute:
- get_document_position(n.elems, position_context);
- case Field:
- get_document_position(n.names, position_context);
- get_document_position(n.type, position_context);
- get_document_position(n.default_value, position_context);
- case Field_List:
- get_document_position(n.list, position_context);
- case Typeid_Type:
- get_document_position(n.specialization, position_context);
- case Helper_Type:
- get_document_position(n.type, position_context);
- case Distinct_Type:
- get_document_position(n.type, position_context);
- case Opaque_Type:
- get_document_position(n.type, position_context);
- case Poly_Type:
- get_document_position(n.type, position_context);
- get_document_position(n.specialization, position_context);
- case Proc_Type:
- get_document_position(n.params, position_context);
- get_document_position(n.results, position_context);
- case Pointer_Type:
- get_document_position(n.elem, position_context);
- case Array_Type:
- get_document_position(n.len, position_context);
- get_document_position(n.elem, position_context);
- case Dynamic_Array_Type:
- get_document_position(n.elem, position_context);
- case Struct_Type:
- get_document_position(n.poly_params, position_context);
- get_document_position(n.align, position_context);
- get_document_position(n.fields, position_context);
- case Union_Type:
- get_document_position(n.poly_params, position_context);
- get_document_position(n.align, position_context);
- get_document_position(n.variants, position_context);
- case Enum_Type:
- get_document_position(n.base_type, position_context);
- get_document_position(n.fields, position_context);
- case Bit_Field_Type:
- get_document_position(n.fields, position_context);
- case Bit_Set_Type:
- get_document_position(n.elem, position_context);
- get_document_position(n.underlying, position_context);
- case Map_Type:
- get_document_position(n.key, position_context);
- get_document_position(n.value, position_context);
- case:
- fmt.panicf("Unhandled node kind: %T", n);
- }
+ get_document_position(r.expr, position_context);
+ case Assign_Stmt:
+ get_document_position(n.lhs, position_context);
+ get_document_position(n.rhs, position_context);
+ case Block_Stmt:
+ get_document_position(n.label, position_context);
+ get_document_position(n.stmts, position_context);
+ case If_Stmt:
+ get_document_position(n.label, position_context);
+ get_document_position(n.init, position_context);
+ get_document_position(n.cond, position_context);
+ get_document_position(n.body, position_context);
+ get_document_position(n.else_stmt, position_context);
+ case When_Stmt:
+ get_document_position(n.cond, position_context);
+ get_document_position(n.body, position_context);
+ get_document_position(n.else_stmt, position_context);
+ case Return_Stmt:
+ get_document_position(n.results, position_context);
+ case Defer_Stmt:
+ get_document_position(n.stmt, position_context);
+ case For_Stmt:
+ get_document_position(n.label, position_context);
+ get_document_position(n.init, position_context);
+ get_document_position(n.cond, position_context);
+ get_document_position(n.post, position_context);
+ get_document_position(n.body, position_context);
+ case Range_Stmt:
+ get_document_position(n.label, position_context);
+ get_document_position(n.val0, position_context);
+ get_document_position(n.val1, position_context);
+ get_document_position(n.expr, position_context);
+ get_document_position(n.body, position_context);
+ case Case_Clause:
+ get_document_position(n.list, position_context);
+ get_document_position(n.body, position_context);
+ case Switch_Stmt:
+ get_document_position(n.label, position_context);
+ get_document_position(n.init, position_context);
+ get_document_position(n.cond, position_context);
+ get_document_position(n.body, position_context);
+ case Type_Switch_Stmt:
+ get_document_position(n.label, position_context);
+ get_document_position(n.tag, position_context);
+ get_document_position(n.expr, position_context);
+ get_document_position(n.body, position_context);
+ case Branch_Stmt:
+ get_document_position(n.label, position_context);
+ case Using_Stmt:
+ get_document_position(n.list, position_context);
+ case Bad_Decl:
+ case Value_Decl:
+ get_document_position(n.attributes, position_context);
+ get_document_position(n.names, position_context);
+ get_document_position(n.type, position_context);
+ get_document_position(n.values, position_context);
+ case Package_Decl:
+ case Import_Decl:
+ case Foreign_Block_Decl:
+ get_document_position(n.attributes, position_context);
+ get_document_position(n.foreign_library, position_context);
+ get_document_position(n.body, position_context);
+ case Foreign_Import_Decl:
+ get_document_position(n.name, position_context);
+ case Proc_Group:
+ get_document_position(n.args, position_context);
+ case Attribute:
+ get_document_position(n.elems, position_context);
+ case Field:
+ get_document_position(n.names, position_context);
+ get_document_position(n.type, position_context);
+ get_document_position(n.default_value, position_context);
+ case Field_List:
+ get_document_position(n.list, position_context);
+ case Typeid_Type:
+ get_document_position(n.specialization, position_context);
+ case Helper_Type:
+ get_document_position(n.type, position_context);
+ case Distinct_Type:
+ get_document_position(n.type, position_context);
+ case Opaque_Type:
+ get_document_position(n.type, position_context);
+ case Poly_Type:
+ get_document_position(n.type, position_context);
+ get_document_position(n.specialization, position_context);
+ case Proc_Type:
+ get_document_position(n.params, position_context);
+ get_document_position(n.results, position_context);
+ case Pointer_Type:
+ get_document_position(n.elem, position_context);
+ case Array_Type:
+ get_document_position(n.len, position_context);
+ get_document_position(n.elem, position_context);
+ case Dynamic_Array_Type:
+ get_document_position(n.elem, position_context);
+ case Struct_Type:
+ get_document_position(n.poly_params, position_context);
+ get_document_position(n.align, position_context);
+ get_document_position(n.fields, position_context);
+ case Union_Type:
+ get_document_position(n.poly_params, position_context);
+ get_document_position(n.align, position_context);
+ get_document_position(n.variants, position_context);
+ case Enum_Type:
+ get_document_position(n.base_type, position_context);
+ get_document_position(n.fields, position_context);
+ case Bit_Field_Type:
+ get_document_position(n.fields, position_context);
+ case Bit_Set_Type:
+ get_document_position(n.elem, position_context);
+ get_document_position(n.underlying, position_context);
+ case Map_Type:
+ get_document_position(n.key, position_context);
+ get_document_position(n.value, position_context);
+ case:
+ fmt.panicf("Unhandled node kind: %T", n);
+ }
} \ No newline at end of file