From 72ac7e3dff0788ff44a908dd32a1a45a17b7b0eb Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Thu, 25 Apr 2024 20:28:10 -0700 Subject: [PATCH] WIP --- lua/argonaut/types.lua | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/lua/argonaut/types.lua b/lua/argonaut/types.lua index 793892d..8710db9 100644 --- a/lua/argonaut/types.lua +++ b/lua/argonaut/types.lua @@ -3,10 +3,11 @@ -- local Cursor = {} +Cursor.mt = {__index = Cursor} function Cursor.new(row, col) local cursor = {row = row, col = col} - return setmetatable(cursor, {__index = Cursor}) + return setmetatable(cursor, Cursor.mt) end function Cursor:is_valid() @@ -30,15 +31,20 @@ function Cursor:set_current() vim.fn.secursorcharpos({self.row, self.col}) end +function Cursor.mt.__eq(self, other) + return self.row == other.row and self.col == other.col +end + -- -- BracePair -- local BracePair = {} +BracePair.mt = {__index = BracePair} function BracePair.new(open, close) local pair = {open = open, close = close} - return setmetatable(pair, {__index = BracePair}) + return setmetatable(pair, BracePair.mt) end function BracePair.from_brace(brace) @@ -103,10 +109,11 @@ end -- local BraceStack = {} +BraceStack.mt = {__index = BraceStack} function BraceStack.new() local stack = {stack = {}} - return setmetatable(stack, {__index = BraceStack}) + return setmetatable(stack, BraceStack.mt) end function BraceStack:update(brace) @@ -142,6 +149,7 @@ end -- local BraceRange = {} +BraceRange.mt = {__index = BraceRange} function BraceRange.new(start, stop, pair) local range = { @@ -150,7 +158,7 @@ function BraceRange.new(start, stop, pair) pair = pair, } - return setmetatable(range, {__index = BraceRange}) + return setmetatable(range, BraceRange.mt) end function BraceRange.find_closest(pair) @@ -158,7 +166,7 @@ function BraceRange.find_closest(pair) if stop then local start = pair:find_closest(true) if start then - return BraceRange.new(start, stop, pair, {}) + return BraceRange.new(start, stop, pair) end end end @@ -210,6 +218,7 @@ end -- local Param = {} +Param.mt = {__index = Param} function Param.new(text, pair) local param = { @@ -217,7 +226,7 @@ function Param.new(text, pair) pair = pair, } - return setmetatable(param, {__index = Param}) + return setmetatable(param, Param.mt) end function Param:append(char) @@ -233,6 +242,7 @@ end -- local ParamList = {} +ParamList.mt = {__index = ParamList} function ParamList.new() local params = { @@ -240,7 +250,7 @@ function ParamList.new() parsed = {}, } - return setmetatable(params, {__index = ParamList}) + return setmetatable(params, ParamList.mt) end function ParamList:flush() @@ -296,6 +306,7 @@ end -- local WrapContext = {} +WrapContext.mt = {__index = WrapContext} function WrapContext.new(opt) local wrap_context = { @@ -307,7 +318,7 @@ function WrapContext.new(opt) params = nil, } - return setmetatable(wrap_context, {__index = WrapContext}) + return setmetatable(wrap_context, WrapContext.mt) end function WrapContext:parse()