raphaelcastaneda: Hmm...
https://travis-ci.org/guykisel/inline-plz/jobs/123219118#L726

`  File "/home/travis/build/guykisel/inline-plz/inlineplz/linters/__init__.py", line 364, in lint
    linter_messages = config.get('parser')().parse(output)
  File "/home/travis/build/guykisel/inline-plz/inlineplz/parsers/rflint.py", line 14, in parse
    for line in lint_data.split('\n'):
AttributeError: 'list' object has no attribute 'split'`

diff --git a/inlineplz/linters/__init__.py b/inlineplz/linters/__init__.py
index 16cce9f..5cafd13 100644
--- a/inlineplz/linters/__init__.py
+++ b/inlineplz/linters/__init__.py
@@ -175,13 +175,13 @@ LINTERS = {
     'rflint': {
         'install': [['pip', 'install', 'robotframework-lint']],
         'help': ['rflint', '--help'],
-        'run': ['rflint', '.'],
-        'rundefault': ['rflint', '-A', '{config_dir}/.rflint', '.'],
+        'run': ['rflint'],
+        'rundefault': ['rflint', '-A', '{config_dir}/.rflint'],
         'dotfiles': ['.rflint'],
         'parser': parsers.RobotFrameworkLintParser,
         'language': 'robotframework',
         'autorun': True,
-        'run_per_file': False
+        'run_per_file': True
     },
 }
 
diff --git a/inlineplz/parsers/rflint.py b/inlineplz/parsers/rflint.py
index 56206ae..c4e8500 100644
--- a/inlineplz/parsers/rflint.py
+++ b/inlineplz/parsers/rflint.py
@@ -11,16 +11,17 @@ class RobotFrameworkLintParser(ParserBase):
     def parse(self, lint_data):
         messages = set()
         current_file = None
-        for line in lint_data.split('\n'):
-            try:
-                if line.startswith('+'):
-                    current_file = line.split(' ')[1].strip()
-                    continue
-                else:
-                    _, position, message = line.split(':')
-                    line_number, _ = position.split(',')
-                    messages.add((current_file, int(line_number), message.strip()))
-            except ValueError:
-                pass
+        for _, output in lint_data:
+            for line in output.split('\n'):
+                try:
+                    if line.startswith('+'):
+                        current_file = line[2:]
+                        continue
+                    else:
+                        _, position, message = line.split(':')
+                        line_number, _ = position.split(',')
+                        messages.add((current_file, int(line_number), message.strip()))
+                except ValueError:
+                    pass
 
         return messages

rflint is running against all file types
```
Message:
    Path: node_modules/stylint/node_modules/yargs/node_modules/cliui/node_modules/wordwrap/test/idleness.txt
    Line number: 19
    Content: set([u'rflint: Line is too long (exceeds 250 characters) (LineTooLong)'])
```
fyi @raphaelcastaneda 
diff --git a/tests/parsers/test_rflint.py b/tests/parsers/test_rflint.py
index fcee628..7d164ea 100644
--- a/tests/parsers/test_rflint.py
+++ b/tests/parsers/test_rflint.py
@@ -17,7 +17,14 @@ rflint_path = os.path.join(
 
 def test_rflint():
     with codecs.open(rflint_path, encoding='utf-8', errors='replace') as inputfile:
-        messages = sorted(list(rflint.RobotFrameworkLintParser().parse(inputfile.read())))
-        assert messages[-1][2] == 'Too few steps (1) in keyword (TooFewKeywordSteps)'
-        assert messages[-1][1] == 30
-        assert messages[-1][0] == './Functional_Requirements/keywords.robot'
+        test_data = inputfile.readlines()
+        test_filename = ''
+        test_input = []
+        for line in test_data:
+            if line.startswith('+'):
+                test_filename = line.split(' ')[-1].strip()
+            test_input.append((test_filename, line))
+    messages = sorted(list(rflint.RobotFrameworkLintParser().parse(test_input)))
+    assert messages[-1][2] == 'Too few steps (1) in keyword (TooFewKeywordSteps)'
+    assert messages[-1][1] == 30
+    assert messages[-1][0] == './Functional_Requirements/keywords.robot'

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
cryptography==44.0.2
exceptiongroup==1.2.2
github3.py==4.0.1
idna==3.10
iniconfig==2.1.0
-e git+https://github.com/guykisel/inline-plz.git@a7c89d5b65df2486ccf78f43fcffdc18dff76bd7#egg=inlineplz
packaging==24.2
pluggy==1.5.0
pycparser==2.22
PyJWT==2.10.1
pytest==8.3.5
python-dateutil==2.9.0.post0
PyYAML==6.0.2
requests==2.32.3
scandir==1.10.0
six==1.17.0
tomli==2.2.1
unidiff==0.7.5
uritemplate==4.1.1
urllib3==2.3.0
xmltodict==0.14.2

name: inline-plz
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - cffi==1.17.1
      - charset-normalizer==3.4.1
      - cryptography==44.0.2
      - exceptiongroup==1.2.2
      - github3-py==4.0.1
      - idna==3.10
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pycparser==2.22
      - pyjwt==2.10.1
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.2
      - requests==2.32.3
      - scandir==1.10.0
      - six==1.17.0
      - tomli==2.2.1
      - unidiff==0.7.5
      - uritemplate==4.1.1
      - urllib3==2.3.0
      - xmltodict==0.14.2
prefix: /opt/conda/envs/inline-plz

tests/parsers/test_rflint.py::test_rflint
inlineplz/parsers/rflint.py inlineplz/linters/__init__.py
inlineplz/parsers/rflint.py inlineplz/linters/__init__.py