aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/shared.lua
diff options
context:
space:
mode:
authorAshkan Kiani <ashkan.k.kiani@gmail.com>2019-12-01 05:32:55 -0800
committerGitHub <noreply@github.com>2019-12-01 05:32:55 -0800
commit70b606166640d043fc7b78a52b89ff1bba798b6a (patch)
treee6175138b495c048a6df41fc868552507c05510e /runtime/lua/vim/shared.lua
parente6da21d12895e2f34c6ce41bb16400d5eef3ea12 (diff)
downloadrneovim-70b606166640d043fc7b78a52b89ff1bba798b6a.tar.gz
rneovim-70b606166640d043fc7b78a52b89ff1bba798b6a.tar.bz2
rneovim-70b606166640d043fc7b78a52b89ff1bba798b6a.zip
Add vim.startswith and vim.endswith (#11248)
Diffstat (limited to 'runtime/lua/vim/shared.lua')
-rw-r--r--runtime/lua/vim/shared.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
index 631dd04c35..b5b04d7757 100644
--- a/runtime/lua/vim/shared.lua
+++ b/runtime/lua/vim/shared.lua
@@ -320,6 +320,26 @@ function vim.pesc(s)
return s:gsub('[%(%)%.%%%+%-%*%?%[%]%^%$]', '%%%1')
end
+--- Test if `prefix` is a prefix of `s` for strings.
+--
+-- @param s String to check
+-- @param prefix Potential prefix
+-- @return boolean True if prefix is a prefix of s
+function vim.startswith(s, prefix)
+ vim.validate { s = {s, 's'}; prefix = {prefix, 's'}; }
+ return s:sub(1, #prefix) == prefix
+end
+
+--- Test if `suffix` is a suffix of `s` for strings.
+--
+-- @param s String to check
+-- @param suffix Potential suffix
+-- @return boolean True if suffix is a suffix of s
+function vim.endswith(s, suffix)
+ vim.validate { s = {s, 's'}; suffix = {suffix, 's'}; }
+ return #suffix == 0 or s:sub(-#suffix) == suffix
+end
+
--- Validates a parameter specification (types and values).
---
--- Usage example: