Loading ...
Sorry, an error occurred while loading the content.

Re: syntax highlighting question

Expand Messages
  • Ben Schmidt
    ... You may yet get an answer. I don t think it s impossible to do javascript in strings, but it is a little tricky. It s the sort of area we delve into
    Message 1 of 7 , Aug 1 8:01 AM
    • 0 Attachment
      On 1/08/12 4:08 PM, Peter Miller wrote:
      > i gather from the lack of response that my previous question has no
      > feasible answer.

      You may yet get an answer. I don't think it's impossible to do
      javascript in strings, but it is a little tricky. It's the sort of area
      we delve into relatively rarely, and indeed, relatively few of us go
      there at all. Formulating a truly useful response will take more time
      than other questions. Give it a little while to brew and someone still
      might answer (myself included).

      Ben.



      > I noticed that the syntax/php.vim file on my ubuntu machine has a
      > |php_htmlInStrings| option. I can turn this option on to display HTML syntax
      > highlighting within strings in my php files, which is great. I would also like to
      > do javascript syntax highlighting within strings in a php file. Does anybody know
      > if this can be done and if so how can I do it?

      --
      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    • Ben Fritz
      ... I personally passed up the question because I don t know of a way that is already built into the php syntax script but maybe one exists. It s possible to
      Message 2 of 7 , Aug 1 8:50 AM
      • 0 Attachment
        On Wednesday, August 1, 2012 1:08:35 AM UTC-5, mulllhausen wrote:
        > hi all,
        >
        > i gather from the lack of response that my previous question has no feasible answer. anyway, i have updated the question a bit to give some other possible ways of solving the problem. any pointers in the right direction would be much appreciated. i am pretty competent with vim but i have little to no vim scripting. then again i am a quick learner and very eager haha...
        >
        >
        > here is the updated question: http://stackoverflow.com/questions/11661614/vim-php-javascriptinstrings-option
        >
        >
        >
        >
        >
        >
        >
        > I noticed that the syntax/php.vim file on my ubuntu machine has a php_htmlInStrings
        > option. I can turn this option on to display HTML syntax highlighting
        > within strings in my php files, which is great. I would also like to do
        > javascript syntax highlighting within strings in a php file. Does
        > anybody know if this can be done and if so how can I do it?
        >
        >
        > edited - added extra possibilities
        >
        >
        > I should also mention that I would be happy with a solution where i
        > have to parse all my javascript strings though a php function before
        > outputting the result. This might get around the problem suggested by
        > connor below where vim has trouble deciding if the string contains
        > javascript. for example:
        >
        > $js = "some regular text which is not javascript##now vim has
        > detected that this part is javscript##back to regular text";
        >
        > parse($js);
        > function parse($str)
        >
        > {
        >     return str_replace('##', '', $str);
        >
        > }
        >
        >
        >
        > The reason I would be happy to do this is because I will probably be
        > incorporating a html/css/js variable minifier into my project which will
        > be doing substitutions on strings anyway.
        >
        >
        > Of course if there is a vim-specific equivalent character for ## which will not show up in the source code and would not need to be filtered out then this would be preferable...

        I personally passed up the question because I don't know of a way that is already built into the php syntax script but maybe one exists.

        It's possible to do, see http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file and the help links it gives but it will require a lot of work on your part to do it yourself.

        --
        You received this message from the "vim_use" maillist.
        Do not top-post! Type your reply below the text you are replying to.
        For more information, visit http://www.vim.org/maillist.php
      • Peter Miller
        ... thanks for the replies people! and no worries if it takes a while :) somebody on stackoverflow showed me that if i put at the start of the string,
        Message 3 of 7 , Aug 1 6:12 PM
        • 0 Attachment
          On Thu, Aug 2, 2012 at 1:20 AM, Ben Fritz <fritzophrenic@...> wrote:
          On Wednesday, August 1, 2012 1:08:35 AM UTC-5, mulllhausen wrote:
          > hi all,
          >
          > i gather from the lack of response that my previous question has no feasible answer. anyway, i have updated the question a bit to give some other possible ways of solving the problem. any pointers in the right direction would be much appreciated. i am pretty competent with vim but i have little to no vim scripting. then again i am a quick learner and very eager haha...
          >
          >
          > here is the updated question: http://stackoverflow.com/questions/11661614/vim-php-javascriptinstrings-option
          >
          >
          >
          >
          >
          >
          >
          > I noticed that the syntax/php.vim file on my ubuntu machine has a php_htmlInStrings
          >  option. I can turn this option on to display HTML syntax highlighting
          > within strings in my php files, which is great. I would also like to do
          > javascript syntax highlighting within strings in a php file. Does
          > anybody know if this can be done and if so how can I do it?
          >
          >
          > edited - added extra possibilities
          >
          >
          > I should also mention that I would be happy with a solution where i
          > have to parse all my javascript strings though a php function before
          > outputting the result. This might get around the problem suggested by
          > connor below where vim has trouble deciding if the string contains
          > javascript. for example:
          >
          > $js = "some regular text which is not javascript##now vim has
          > detected that this part is javscript##back to regular text";
          >
          > parse($js);
          > function parse($str)
          >
          > {
          >     return str_replace('##', '', $str);
          >
          > }
          >
          >
          >
          > The reason I would be happy to do this is because I will probably be
          > incorporating a html/css/js variable minifier into my project which will
          >  be doing substitutions on strings anyway.
          >
          >
          > Of course if there is a vim-specific equivalent character for ## which will not show up in the source code and would not need to be filtered out then this would be preferable...

          I personally passed up the question because I don't know of a way that is already built into the php syntax script but maybe one exists.

          It's possible to do, see http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file and the help links it gives but it will require a lot of work on your part to do it yourself.

          --
          You received this message from the "vim_use" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php


          thanks for the replies people! and no worries if it takes a while :)

          somebody on stackoverflow showed me that if i put <script> at the start of the string, then turn on the html syntax highlighting, vim will interpret the string as javascript and format accordingly.

          my line 167 in syntax/html.vim previously looked like this:

          syn region  javaScript start=+<script[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc

          so i commented it out and changed "script" to "js". i have a work around now where i parse all javascript strings through a function to strip out the opening tag (i found that i dont actually need a closing tag for vim to give the proper syntax highlighting). however, while this is functional, it would be nice if i could use the following format to get the syntax highlighting:

          /*<js>*/ "this string should have javascript syntax highlighting" /*</js>*/

          i have had a go at this but i'm a bit new to the way that vim groups regions under headings so i didn't get it right. line 340 in syntax/php.vim currently reads:

            syn region  phpComment  start="/\*" end="\*/" contained contains=phpTodo

          so i tried changing it to:

            syn region  phpComment  start="/\*" end="\*/" contained contains=@htmlJavascript,phpTodo

          but that doesn't do it.

          actually if somebody could give me some pointers as to a good place to learn about the vim syntax regions that would be a great help. or if anybody can tell me how i could alter my syntax/ files that would be even better!

          thanks in advance!
          peter

          --
          You received this message from the "vim_use" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php
        Your message has been successfully submitted and would be delivered to recipients shortly.