summaryrefslogtreecommitdiff
path: root/scratch/fast_split.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/fast_split.lua')
-rw-r--r--scratch/fast_split.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/scratch/fast_split.lua b/scratch/fast_split.lua
new file mode 100644
index 0000000..0c5ea88
--- /dev/null
+++ b/scratch/fast_split.lua
@@ -0,0 +1,28 @@
+local test_line = "/home/tj/hello/world.lua"
+
+local function fast_split(line, split)
+ -- local split_line = vim.split(line, split)
+ local areas = {}
+
+ local processed = 1
+ local line_length = #line + 1
+
+ local part, start
+ repeat
+ start = string.find(line, split, processed, true) or line_length
+ part = string.sub(line, processed, start - 1)
+
+ if start - processed > 0 then
+ table.insert(areas, {
+ word = part,
+ offset = processed
+ })
+ end
+
+ processed = start + 1
+ until start == line_length
+
+ return areas
+end
+
+print(vim.inspect(fast_split(test_line, '/')))