3

I'm trying to configure the vim Ale plugin to use Tidy to lint HTML code. I added to my .vimrc file:

 let g:ale_linters = {
 \   'css': ['csslint'],
 \   'html': ['tidy'],
 \   'javascript': ['eslint'],
 \   'php': [''],
 \   'python': ['flake8'],
 \}

I got the linters working for CSS, JavaScript, and Python, but not HTML.

:ALEInfo outputs:

Current Filetype: html
Available Linters: ['alex', 'fecs', 'htmlhint', 'proselint', 'stylelint', 'tidy', 'writegood']
Linter Aliases: 'writegood' -> ['write-good']

Enabled Linters: ['tidy']

. . . at the end of the information . . .

Command History: (executable check - success) tidy

It looks like the Tidy linter is available and configured, but I can't get it to work. The html files seem to have no linting at all.

I am able to run Tidy successfully in the terminal:

> tidy test.html
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: plain text isn't allowed in <head> elements
line 1 column 2 - Warning: discarding unexpected <html>
line 2 column 5 - Warning: <body> unexpected or duplicate quote mark
line 2 column 5 - Warning: discarding unexpected <body>
line 4 column 7 - Error: <bdy> is not recognized!
line 4 column 7 - Warning: discarding unexpected <bdy>
line 1 column 1 - Warning: inserting missing 'title' element
line 3 column 7 - Warning: trimming empty <p>
Info: Document content looks like HTML 3.2
8 warnings, 1 error were found!

How can I get Tidy to work with Ale in vim?

Rob Bednark
  • 25,981
  • 23
  • 80
  • 125
burke
  • 89
  • 2
  • 2
  • 10

1 Answers1

2

You also need to tell vim where to find the tidy executable, e.g., tidy on Linux, or tidy.exe on Windows.

In my case, I added this to my vimrc:

let g:ale_html_tidy_executable = "D://TidyHtml//tidy-5.6.0-vc14-64b//bin//tidy.exe"

In vim, to get Ale help for tidy: :h ale-html-tidy

Rob Bednark
  • 25,981
  • 23
  • 80
  • 125
GG.Fan
  • 151
  • 2
  • 5