summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/src/matcher/definition.lua39
-rw-r--r--server/src/matcher/find_result.lua37
-rw-r--r--server/src/matcher/implementation.lua39
-rw-r--r--server/src/matcher/references.lua39
4 files changed, 40 insertions, 114 deletions
diff --git a/server/src/matcher/definition.lua b/server/src/matcher/definition.lua
index 27dfe450..dbb24a47 100644
--- a/server/src/matcher/definition.lua
+++ b/server/src/matcher/definition.lua
@@ -1,41 +1,4 @@
-
-local function isContainPos(obj, pos)
- return obj.start <= pos and obj.finish + 1 >= pos
-end
-
-local function findResult(results, pos)
- for _, var in ipairs(results.vars) do
- for _, info in ipairs(var) do
- if isContainPos(info.source, pos) then
- return {
- type = 'var',
- var = var,
- }
- end
- end
- end
- for _, dots in ipairs(results.dots) do
- for _, info in ipairs(dots) do
- if isContainPos(info.source, pos) then
- return {
- type = 'dots',
- dots = dots,
- }
- end
- end
- end
- for _, label in ipairs(results.labels) do
- for _, info in ipairs(label) do
- if isContainPos(info.source, pos) then
- return {
- type = 'label',
- label = label,
- }
- end
- end
- end
- return nil
-end
+local findResult = require 'matcher.find_result'
local function tryMeta(var)
local keys = {}
diff --git a/server/src/matcher/find_result.lua b/server/src/matcher/find_result.lua
new file mode 100644
index 00000000..b9313510
--- /dev/null
+++ b/server/src/matcher/find_result.lua
@@ -0,0 +1,37 @@
+local function isContainPos(obj, pos)
+ return obj.start <= pos and obj.finish + 1 >= pos
+end
+
+return function (results, pos)
+ for _, var in ipairs(results.vars) do
+ for _, info in ipairs(var) do
+ if isContainPos(info.source, pos) then
+ return {
+ type = 'var',
+ var = var,
+ }
+ end
+ end
+ end
+ for _, dots in ipairs(results.dots) do
+ for _, info in ipairs(dots) do
+ if isContainPos(info.source, pos) then
+ return {
+ type = 'dots',
+ dots = dots,
+ }
+ end
+ end
+ end
+ for _, label in ipairs(results.labels) do
+ for _, info in ipairs(label) do
+ if isContainPos(info.source, pos) then
+ return {
+ type = 'label',
+ label = label,
+ }
+ end
+ end
+ end
+ return nil
+end
diff --git a/server/src/matcher/implementation.lua b/server/src/matcher/implementation.lua
index bf509ff3..e51d7a22 100644
--- a/server/src/matcher/implementation.lua
+++ b/server/src/matcher/implementation.lua
@@ -1,41 +1,4 @@
-
-local function isContainPos(obj, pos)
- return obj.start <= pos and obj.finish + 1 >= pos
-end
-
-local function findResult(results, pos)
- for _, var in ipairs(results.vars) do
- for _, info in ipairs(var) do
- if isContainPos(info.source, pos) then
- return {
- type = 'var',
- var = var,
- }
- end
- end
- end
- for _, dots in ipairs(results.dots) do
- for _, info in ipairs(dots) do
- if isContainPos(info.source, pos) then
- return {
- type = 'dots',
- dots = dots,
- }
- end
- end
- end
- for _, label in ipairs(results.labels) do
- for _, info in ipairs(label) do
- if isContainPos(info.source, pos) then
- return {
- type = 'label',
- label = label,
- }
- end
- end
- end
- return nil
-end
+local findResult = require 'matcher.find_result'
local function tryMeta(var)
local keys = {}
diff --git a/server/src/matcher/references.lua b/server/src/matcher/references.lua
index c0a98fe3..f5b72c55 100644
--- a/server/src/matcher/references.lua
+++ b/server/src/matcher/references.lua
@@ -1,41 +1,4 @@
-
-local function isContainPos(obj, pos)
- return obj.start <= pos and obj.finish + 1 >= pos
-end
-
-local function findResult(results, pos)
- for _, var in ipairs(results.vars) do
- for _, info in ipairs(var) do
- if isContainPos(info.source, pos) then
- return {
- type = 'var',
- var = var,
- }
- end
- end
- end
- for _, dots in ipairs(results.dots) do
- for _, info in ipairs(dots) do
- if isContainPos(info.source, pos) then
- return {
- type = 'dots',
- dots = dots,
- }
- end
- end
- end
- for _, label in ipairs(results.labels) do
- for _, info in ipairs(label) do
- if isContainPos(info.source, pos) then
- return {
- type = 'label',
- label = label,
- }
- end
- end
- end
- return nil
-end
+local findResult = require 'matcher.find_result'
local function tryMeta(var)
local keys = {}