Re: syntax/man.vim: manSubHeading is a bit too general?
On 4/10/07, Charles E Campbell Jr <[EMAIL PROTECTED]> wrote: Nikolai Weibull wrote: > On 4/9/07, Charles E Campbell Jr <[EMAIL PROTECTED]> wrote: > >> In this case, by looking at syntax/man.vim, its: Gautam H. Mudunuri >> . > > > Actually, this was actually the wrong maintainer. Gautam was the > previous maintainer of this file. Nam SungHyun <[EMAIL PROTECTED]> > maintains it now. Whoops -- yes, you're quite right. Sorry 'bout that... What's worse is that that address is no longer valid. I've tried another address attached to one Nam SungHyun. We'll see if he responds. nikolai
Re: syntax/man.vim: manSubHeading is a bit too general?
Nikolai Weibull wrote: On 4/9/07, Charles E Campbell Jr <[EMAIL PROTECTED]> wrote: In this case, by looking at syntax/man.vim, its: Gautam H. Mudunuri . Actually, this was actually the wrong maintainer. Gautam was the previous maintainer of this file. Nam SungHyun <[EMAIL PROTECTED]> maintains it now. Whoops -- yes, you're quite right. Sorry 'bout that... Chip Campbell
Re: syntax/man.vim: manSubHeading is a bit too general?
Ian Tegebo wrote: On 4/9/07, Nikolai Weibull <[EMAIL PROTECTED]> wrote: The manSubHeading is defined as syn match manSubHeading "^\s\{3\}[a-z][a-z ]*[a-z]$" This will, however, match more lines than I think is intended. It will, for example, match the line \t returns are what are recorded and compared with the data git keeps where "\t" is a horizontal tabulation. I'm guessing that the actual regex should be ^ \{3\}[a-z][a-z ]*[a-z]$ I hope nobody minds if I take this opportunity to ask a question about vim's pattern matching. After reading |pattern| I wonder if the following is more efficient: syn match manSubHeading '^ \{3\}\l\l\?\l$' (snip) The pattern you've provided isn't matching the same thing. The current one: start the line with exactly three spaces or tabs, followed by a lower case character, followed by any number of lower case characters or spaces, up to a lower case character at the end-of-line. example: aaa aa Nikolai W's modifies that to "start the line with exactly three spaces"; the rest is the same. example: aaa aa aaa Yours: start the line with exactly three spaces, followed by two or three lower case characters, which then terminates the line. example: aa Do people find this to make a different for moderate file sizes, e.g. the man page for 'less' being ~2000 lines? Depends on the line lengths. Your pattern would terminate quite quickly on each line, as only 5 or 6 characters may be at the beginning of matching lines; anything more is a mismatch. The original and NW's both examine the entire line; so if every line had 1GB of characters, these two patterns would take considerably longer than yours. Regards, Chip Campbell
Re: syntax/man.vim: manSubHeading is a bit too general?
On 4/9/07, Ian Tegebo <[EMAIL PROTECTED]> wrote: On 4/9/07, Nikolai Weibull <[EMAIL PROTECTED]> wrote: > ^ \{3\}[a-z][a-z ]*[a-z]$ I hope nobody minds if I take this opportunity to ask a question about vim's pattern matching. After reading |pattern| I wonder if the following is more efficient: syn match manSubHeading '^ \{3\}\l\l\?\l$' Yes, and it may be more correct as well, at least in the first and last instance. However, the second part may also contain a space, so \l isn't correct there; and I don't know where you get that \? from. This is the correct pattern: ^ \{3}\l[[:alpha:] ]*\l$ (I also noticed that the apparently accepted "\{m\}" is being used in this file instead of the documented "\{m}") One can of course ask oneself if a subsection heading must consist of at least two letters. I'm guessing that the intent was to force the line to end with a non-space: ^ \{3}\l\%([[:alpha:] ]*\l\)\=$ In fact, I'd prefer it be written as ^ \{3}\a\%([[:alpha:] ]*\a\)\=$ as 'syn case ignore' is on, \l and \a will be the same. However, \a meshes better with [:alpha:] and may, depending on how all this is implemented, be a miniscule amount faster. Taken from |pattern|: - Matching with a collection can be slow, because each character in the text has to be compared with each character in the collection. Use one of the other atoms above when possible. Example: "\d" is much faster than "[0-9]" and matches the same characters Do people find this to make a different for moderate file sizes, e.g. the man page for 'less' being ~2000 lines? Probably not. nikolai
Re: syntax/man.vim: manSubHeading is a bit too general?
On 4/9/07, Nikolai Weibull <[EMAIL PROTECTED]> wrote: The manSubHeading is defined as syn match manSubHeading "^\s\{3\}[a-z][a-z ]*[a-z]$" This will, however, match more lines than I think is intended. It will, for example, match the line \t returns are what are recorded and compared with the data git keeps where "\t" is a horizontal tabulation. I'm guessing that the actual regex should be ^ \{3\}[a-z][a-z ]*[a-z]$ I hope nobody minds if I take this opportunity to ask a question about vim's pattern matching. After reading |pattern| I wonder if the following is more efficient: syn match manSubHeading '^ \{3\}\l\l\?\l$' Taken from |pattern|: - Matching with a collection can be slow, because each character in the text has to be compared with each character in the collection. Use one of the other atoms above when possible. Example: "\d" is much faster than "[0-9]" and matches the same characters Do people find this to make a different for moderate file sizes, e.g. the man page for 'less' being ~2000 lines? -- Ian Tegebo
Re: syntax/man.vim: manSubHeading is a bit too general?
On 4/9/07, Charles E Campbell Jr <[EMAIL PROTECTED]> wrote: In this case, by looking at syntax/man.vim, its: Gautam H. Mudunuri . Actually, this was actually the wrong maintainer. Gautam was the previous maintainer of this file. Nam SungHyun <[EMAIL PROTECTED]> maintains it now. nikolai
Re: syntax/man.vim: manSubHeading is a bit too general?
On 4/9/07, Charles E Campbell Jr <[EMAIL PROTECTED]> wrote: Nikolai Weibull wrote: > The manSubHeading is defined as > > syn match manSubHeading "^\s\{3\}[a-z][a-z ]*[a-z]$" > > This will, however, match more lines than I think is intended. > Anyone have any insight into this issue? I suggest bringing up syntax highlighting issues for a specific filetype with the syntax highlighting file's maintainer. In this case, by looking at syntax/man.vim, its: Gautam H. Mudunuri . Or, as the file mentions four lines down, Johannes Tanzler <[EMAIL PROTECTED]>, who was responsible for this particular rule. However, I reasoned that someone with better knowledge than myself of the output format of manual pages could jump in and correct me or, better yet, confirm my change. I would then be in a position to post a patch to the maintainer. If the maintainer or the person responsible for this particular rule has subscribed to this list, then they would also benefit from this discussion. Sure, I could have Cc:ed the responsible parties right away, but I figured that if they don't subscribe to this list they don't want bothersome emails about syntax-highlighting definitions that don't have a conclusion to an issue at hand. Some further digging has revealed that what manSubHeading tries to match is lines marked as ".SS", that is "Subsection Heading", and that groff and nroff formats these lines with an indent of three spaces, so my initial suspicion was correct. I'll therefore contact the appropriate parties with a unified diff. nikolai
Re: syntax/man.vim: manSubHeading is a bit too general?
Nikolai Weibull wrote: The manSubHeading is defined as syn match manSubHeading "^\s\{3\}[a-z][a-z ]*[a-z]$" This will, however, match more lines than I think is intended. It will, for example, match the line \t returns are what are recorded and compared with the data git keeps where "\t" is a horizontal tabulation. I'm guessing that the actual regex should be ^ \{3\}[a-z][a-z ]*[a-z]$ but I'm not sure; I haven't been able to find a reference for the display of manual pages. Anyone have any insight into this issue? I suggest bringing up syntax highlighting issues for a specific filetype with the syntax highlighting file's maintainer. In this case, by looking at syntax/man.vim, its: Gautam H. Mudunuri . Regards, Chip Campbell
syntax/man.vim: manSubHeading is a bit too general?
The manSubHeading is defined as syn match manSubHeading "^\s\{3\}[a-z][a-z ]*[a-z]$" This will, however, match more lines than I think is intended. It will, for example, match the line \t returns are what are recorded and compared with the data git keeps where "\t" is a horizontal tabulation. I'm guessing that the actual regex should be ^ \{3\}[a-z][a-z ]*[a-z]$ but I'm not sure; I haven't been able to find a reference for the display of manual pages. Anyone have any insight into this issue? nikolai