diff --git a/data/core/common.lua b/data/core/common.lua index 37d30436..dc61553b 100644 --- a/data/core/common.lua +++ b/data/core/common.lua @@ -1,3 +1,5 @@ +local config = require 'core.config' + local common = {} @@ -445,4 +447,15 @@ function common.rm(path, recursively) return true end +---@param filename string +---@return boolean +function common.match_ignore_files(filename) + for _, pattern in ipairs(config.ignore_files) do + if common.match_pattern(filename, pattern) then + return true + end + end + return false +end + return common diff --git a/data/core/config.lua b/data/core/config.lua index 1233595b..02c68f5e 100644 --- a/data/core/config.lua +++ b/data/core/config.lua @@ -6,7 +6,7 @@ config.message_timeout = 5 config.mouse_wheel_scroll = 50 * SCALE config.scroll_past_end = true config.file_size_limit = 10 -config.ignore_files = "^%." +config.ignore_files = { "^%.", "node_modules" } config.symbol_pattern = "[%a_][%w_]*" config.non_word_chars = " \t\n/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-" config.undo_merge_timeout = 0.3 diff --git a/data/core/init.lua b/data/core/init.lua index ae766f57..6a1f306e 100644 --- a/data/core/init.lua +++ b/data/core/init.lua @@ -100,7 +100,7 @@ local function get_project_file_info(root, file) if info then info.filename = strip_leading_path(file) return (info.size < config.file_size_limit * 1e6 and - not common.match_pattern(common.basename(info.filename), config.ignore_files) + not common.match_ignore_files(common.basename(info.filename)) and info) end end @@ -462,7 +462,7 @@ end local function project_scan_add_file(dir, filepath) for fragment in string.gmatch(filepath, "([^/\\]+)") do - if common.match_pattern(fragment, config.ignore_files) then + if common.match_ignore_files(fragment) then return end end