diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-09-19 11:36:47 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-09-19 11:38:03 +0200 |
commit | 49c52823b0c802e0fc8e4f18d517f766f7f43cfc (patch) | |
tree | 1fc7872996b880df1a15e497d5cda19862477cb0 | |
parent | Work on making program ready for packaging. (diff) | |
download | rainbow-parenthesis-49c52823b0c802e0fc8e4f18d517f766f7f43cfc.tar.gz rainbow-parenthesis-49c52823b0c802e0fc8e4f18d517f766f7f43cfc.tar.xz |
Fix backslashes "eating" their next character.
Since we are working with literal characters, than a backslash shouldn't
be removed when esacping a character. The current (and excpeted)
functionallity is that the backslash should escape the next character,
but print both.
Also added tests for this.
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | rainbow_parenthesis/__init__.py | 1 | ||||
-rw-r--r-- | tests/test_string.py | 6 |
3 files changed, 12 insertions, 1 deletions
@@ -1,5 +1,6 @@ .PHONY: check check-style check-type \ - build wheel install clean sphinx-apidoc documentation + build wheel install clean sphinx-apidoc documentation \ + test PYTHON = python DOC_OUTPUT = doc.rendered @@ -31,6 +32,9 @@ $(DOC_OUTPUT)/index.html: sphinx-apidoc documentation: sphinx-apidoc +test: + python -m pytest + clean: -rm -r build -rm -r dist diff --git a/rainbow_parenthesis/__init__.py b/rainbow_parenthesis/__init__.py index 32b7493..1f5e2f7 100644 --- a/rainbow_parenthesis/__init__.py +++ b/rainbow_parenthesis/__init__.py @@ -112,6 +112,7 @@ def colorize(strm: io.TextIOBase) -> Generator[str | Colored, None, None]: in_string = '"' yield c case '\\': + yield c yield strm.read(1) case c: yield c diff --git a/tests/test_string.py b/tests/test_string.py new file mode 100644 index 0000000..5d3040b --- /dev/null +++ b/tests/test_string.py @@ -0,0 +1,6 @@ +from rainbow_parenthesis import colorize, Colored +import io + + +def test_escaped_parenthesis(): + assert list(r"\(") == list(colorize(io.StringIO(r"\("))) |