On Sunday, 6 September 2015 at 23:38:51 UTC, cym13 wrote:
On Sunday, 6 September 2015 at 23:00:21 UTC, bitwise wrote:
On Sunday, 6 September 2015 at 22:37:16 UTC, cym13 wrote:
On Sunday, 6 September 2015 at 21:16:18 UTC, Prudence wrote:
[...]

There already is a kind of "code string":

    interpret(q{
         var a = 2;
         var b += a;
    });

It doesn't do any kind of syntax check, but there again how do you want to have syntax check for any language? The D compiler is a D compiler, it can't support js syntax or whatever.

Many IDEs support multiple languages and can infer language automatically by syntax. It's probably much more difficult than it seems, but I suppose one of these IDEs could be made to parse and infer D token strings separately.

Sure, but the support for that will be an external tool, it doesn't have anything to do in the D compiler. q{} strings are meant to be seen specially by editors, they won't highlight them the same way for example, it is then the editor's job to detect other languages if it wants to. D has done his job in the matter.

Editors will have a hard time highlighting q{} strings differently, since they'll need to understand the semantics in order to know how the string will be parsed. Compare it to Ruby's heredoc, where the chosen terminator string can be used as an hint(https://github.com/joker1007/vim-ruby-heredoc-syntax). Sure, it may be just a convention, but an easily kept one that can make programmers' life easier.

You can't do that with D's q{} strings, unless you hard-code into the editor's relevant syntax file the templates that use them, just like the regular syntax of the language.

Reply via email to