riot / cli

Riot.js command line tool
MIT License
46 stars 9 forks source link

Checking for tag errors doesn't work #12

Closed tayler1 closed 5 years ago

tayler1 commented 8 years ago

At all

$ riot tags/home.tag --check
No syntax error. Ready to compile :)
$ cat tags/home.tag
<home>
    <div {>
    </div>

    const name = "R"
    ne,t setName =,%^; ( => {
    }
</home>

And even compilation works

$ riot tags/home.tag tags/home.js
tags/home.tag -> tags/home.js
$ cat tags/home.js
riot.tag2('home', '<div > </div>', '', '', function(opts) {

    const name = "R"
    ne,t setName =,%^; ( => {
    }
});
GianlucaGuarini commented 8 years ago

Well the riot compiler should not check if you can write javascript. It just check if eventually your tag can be correctly parsed and compiled

tayler1 commented 8 years ago

Yes. It should not check my js. But accordingly to you this sample tag is correct

$ riot tags/home2.tag --check
No syntax error. Ready to compile :)
$ cat tags/home2.tag
<home>
    <div <<
    <span />

    <script>
    01AŠM„É„AIƒÅ@¶¸ýÿÿÿHÞéÎIE¾-H‰Çè„HÀtÆ IƒÅH  ïÿÿH‰ÇL‰îè¨g{Ü
    </script>
  '<home>
</home>
\'

And moreover it was properly compiled into this js

$ riot tags/home2.tag tags/home2.js
tags/home2.tag -> tags/home2.js
$ cat tags/home2.js
riot.tag2('home', '<div span></div> \'<home>', '', '', function(opts) {
    01AŠM„É„AIƒÅ@¶¸ýÿÿÿHÞéÎIE¾-H‰Çè„HÀtÆ IƒÅH  ïÿÿH‰ÇL‰îè¨g{Ü
});
\'

Syntax checking and compilation can't behave two different ways. It shouldn't fail in compilation after successfully checking. It shouldn't fail in checking and successfully compile at same time.

$ riot tags/home4.tag --check
Riot Tag Syntax Error
EOF | 
^^^  Last tag definition is not closed
Total error: 1 in "tags/home4.tag"
$ cat tags/home4.tag
<home>
 <h2>
 <script>var 1 = function()</script>
$ riot tags/home4.tag tags/home4.js
tags/home4.tag -> tags/home4.js
$ cat tags/home4.js
<home>
 <h2>
riot.tag2('script', 'var 1 = function()', '', '', function(opts) {
});
GianlucaGuarini commented 8 years ago

I agree, the syntax checker could be optimized. Thanks for your input

GianlucaGuarini commented 5 years ago

now with the new compiler we should throw error in case of broken syntax. This issue can be closed