From ed4997c77c24a83d9a3724a96dad8534cc4631b4 Mon Sep 17 00:00:00 2001 From: Cre3per <12541974+Cre3per@users.noreply.github.com> Date: Sat, 4 Jun 2022 14:12:42 +0200 Subject: [PATCH] Add syntax mapping from NSE to Lua (#2214) --- CHANGELOG.md | 2 ++ src/syntax_mapping.rs | 5 +++ tests/syntax-tests/highlighted/NSE/test.nse | 34 +++++++++++++++++++++ tests/syntax-tests/source/NSE/test.nse | 34 +++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 tests/syntax-tests/highlighted/NSE/test.nse create mode 100644 tests/syntax-tests/source/NSE/test.nse diff --git a/CHANGELOG.md b/CHANGELOG.md index 48d7eaad..1f250ce3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ ## Syntaxes +- NSE (Nmap Scripting Engine) is mapped to Lua, see #2151 (@Cre3per) + ## Themes ## `bat` as a library diff --git a/src/syntax_mapping.rs b/src/syntax_mapping.rs index fbbac914..dc5df832 100644 --- a/src/syntax_mapping.rs +++ b/src/syntax_mapping.rs @@ -67,6 +67,11 @@ impl<'a> SyntaxMapping<'a> { .insert("*.pac", MappingTarget::MapTo("JavaScript (Babel)")) .unwrap(); + // See #2151, https://nmap.org/book/nse-language.html + mapping + .insert("*.nse", MappingTarget::MapTo("Lua")) + .unwrap(); + // See #1008 mapping .insert("rails", MappingTarget::MapToUnknown) diff --git a/tests/syntax-tests/highlighted/NSE/test.nse b/tests/syntax-tests/highlighted/NSE/test.nse new file mode 100644 index 00000000..3c37aeee --- /dev/null +++ b/tests/syntax-tests/highlighted/NSE/test.nse @@ -0,0 +1,34 @@ +--- Finds factorial of a number. +-- @param value Number to find factorial. +-- @return Factorial of number. +local function factorial(value) + if value <= 1 then + return 1 + else + return value * factorial(value - 1) + end +end + +--- Joins a table of strings into a new string. +-- @param table Table of strings. +-- @param separator Separator character. +-- @return Joined string. +local function join(table, separator) + local data = "" +  + for index, value in ipairs(table) do + data = data .. value .. separator + end +  + data = data:sub(1, data:len() - 1) +  + return data +end + +local a = factorial(5) + +print(a) + +local b = join({ "l", "u", "a" }, ",") + +print(b) diff --git a/tests/syntax-tests/source/NSE/test.nse b/tests/syntax-tests/source/NSE/test.nse new file mode 100644 index 00000000..68eb90e6 --- /dev/null +++ b/tests/syntax-tests/source/NSE/test.nse @@ -0,0 +1,34 @@ +--- Finds factorial of a number. +-- @param value Number to find factorial. +-- @return Factorial of number. +local function factorial(value) + if value <= 1 then + return 1 + else + return value * factorial(value - 1) + end +end + +--- Joins a table of strings into a new string. +-- @param table Table of strings. +-- @param separator Separator character. +-- @return Joined string. +local function join(table, separator) + local data = "" + + for index, value in ipairs(table) do + data = data .. value .. separator + end + + data = data:sub(1, data:len() - 1) + + return data +end + +local a = factorial(5) + +print(a) + +local b = join({ "l", "u", "a" }, ",") + +print(b)