diff --git a/CHANGES.md b/CHANGES.md index 03e90acb8e..a631b26860 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -34,6 +34,7 @@ Language Improvements: - fix(yaml) Fix tags to include non-word characters (#2486) [Peter Plantinga][] - fix(swift) `@objcMembers` was being partially highlighted (#2543) [Nick Randall][] - enh(dart) Add `late` and `required` keywords, and `Never` built-in type (#2550) [Sam Rawlins][] +- enh(erlang) Add underscore separators to numeric literals (#2554) [Sergey Prokhorov][] [Josh Goebel]: https://github.com/yyyc514 [Peter Plantinga]: https://github.com/pplantinga @@ -42,6 +43,7 @@ Language Improvements: [Hankun Lin]: https://github.com/Linhk1606 [Nick Randall]: https://github.com/nicked [Sam Rawlins]: https://github.com/srawlins +[Sergey Prokhorov]: https://github.com/seriyps ## Version 10.0.2 diff --git a/src/languages/erlang-repl.js b/src/languages/erlang-repl.js index 6ba6e0ed49..5d1e6679e9 100644 --- a/src/languages/erlang-repl.js +++ b/src/languages/erlang-repl.js @@ -23,7 +23,7 @@ export default function(hljs) { hljs.COMMENT('%', '$'), { className: 'number', - begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)', + begin: '\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)', relevance: 0 }, hljs.APOS_STRING_MODE, diff --git a/src/languages/erlang.js b/src/languages/erlang.js index 2cec6aecf5..e37b94ea53 100644 --- a/src/languages/erlang.js +++ b/src/languages/erlang.js @@ -20,7 +20,7 @@ export default function(hljs) { var COMMENT = hljs.COMMENT('%', '$'); var NUMBER = { className: 'number', - begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)', + begin: '\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)', relevance: 0 }; var NAMED_FUN = { diff --git a/test/markup/erlang/numbers.expect.txt b/test/markup/erlang/numbers.expect.txt new file mode 100644 index 0000000000..9fdb67b1ae --- /dev/null +++ b/test/markup/erlang/numbers.expect.txt @@ -0,0 +1,14 @@ +Integer = 1234 +BigInteger = 1_234_000 +NegInteger = -20_000 +Float = 2.34 +BigFloat = 3_333.14159_26535_89793 +SciFloat = 2.4e23 +PlusSciFloat = 2.4e+23 +SmallSciFloat = 2.4e-23 +Binary = 2#1010 +StrangeBinary = 2#1010_1010_1010 +Octal = 8#777 +StrangeOctal = 8#777_666_555 +Hex = 16#1ABEF +StrangeHex = 16#1234_FACE_987D diff --git a/test/markup/erlang/numbers.txt b/test/markup/erlang/numbers.txt new file mode 100644 index 0000000000..d14aff8819 --- /dev/null +++ b/test/markup/erlang/numbers.txt @@ -0,0 +1,14 @@ +Integer = 1234 +BigInteger = 1_234_000 +NegInteger = -20_000 +Float = 2.34 +BigFloat = 3_333.14159_26535_89793 +SciFloat = 2.4e23 +PlusSciFloat = 2.4e+23 +SmallSciFloat = 2.4e-23 +Binary = 2#1010 +StrangeBinary = 2#1010_1010_1010 +Octal = 8#777 +StrangeOctal = 8#777_666_555 +Hex = 16#1ABEF +StrangeHex = 16#1234_FACE_987D