Oh gosh. The embedded quote solution turns out to be embarrasingly easy
once I read the vim documentation on "region." But this is why I may not be
suitable as a maintainer. I really do not know the "vim" programming world
very well. OTOH, I know what Oracle SQL and PL/SQL should look like when
syntax highlighed.
syn region sqlString matchgroup=Quote start=+n\?'+ *skip=+''+*
end=+'+
These legal quoted strings all display correctly in vim with this change:
SELECT 'a string with embedded quote ('')' as regq, q'{a string with
embedded quote (')}' as qquote, 'a string ending in a quote ''' as
regq_end_quote FROM dual;
On Sunday, April 17, 2022 at 3:13:40 PM UTC-4 Lee Lindley wrote:
> Hi Chris,
>
> I am an Oracle subject matter expert and pretty good with regular
> expressions, but not so much on vim. I could take the maintainer role if I
> must (as in if that is the only way to get this done, then yes). I would
> prefer to be available as a subject matter expert and let someone else
> maintain it.
>
> I have only two "safe" suggestions for sqloracle.vim:
>
> 1) support for exponential notation in floating point literals.
>
> "[+-]\?\(\(\.\d\+\([eE][+-]\?\d\+\)\)\|\d\+\.\(\d\+\([eE][+-]\?\d\+\)\?\)\)"
>
> 2) You treat double quoted (") strings as String. These are "names" as in
> column names and table names that happen to need double quotes and as such
> should be closer in color to "Normal" than string literal. Not having
> anything in the list of groups that is a sub-group of "Normal", I chose
> Character. I know these are not single character literal values, but it was
> the best I could think of from the choices. I want to be able to assign a
> color to double quoted string names that is close to "Normal" while having
> the color for string literals be something much different.
>
> I would prefer to fold plsql.vim into your sqloracle.vim, but there are
> some fundamental differences in how you classify some oracle keywords plus
> operators as "Statement" and call other keywords "Special" We could not
> combine them without seriously breaking backwards compatibility. Not
> saying one or the other is right. They are just different.
>
> And this discussion led me to realize I had changed the behavior of
> plsql.vim in a way I hadn't noticed. plsql.vim treats most SQL keywords as
> "Function" which as far as I'm concerned is fundamentally broken. These
> need to be a subcategory of Statement (I'm using Keyword and Statement to
> differentiate between reserved and non-reserved words but not trying to
> distinguish sql from plsql keywords at all). There are builtin Oracle
> functions that need to be classified as Function, but words like SELECT and
> MERGE do not belong in that list. Sigh.
>
> I can't see breaking backwards compatibility on something that has been
> around for more than 20 years. Perhaps I need to amend my request to "add a
> new syntax file?" plsqloracle.vim?
>
> Any thoughts on the right thing to do?
>
> PS
> I stole your code for the q-quote operator. Nice job!
> But we both still have a flaw for embedded quotes in reqular ' ' strings.
> These look different:
>
> SELECT 'a string with embedded quote ('')' as regq, q'{a string with
> embedded quote (')}' as qquote FROM dual;
>
> If/when I fix that, I'll let you know.
> On Sunday, April 17, 2022 at 11:56:41 AM UTC-4 [email protected] wrote:
>
>>
>> On So, 17 Apr 2022, Lee Lindley wrote:
>>
>> > The listed maintainer email address for syntax file plsql.vim returns
>> mail as undeliverable and his online presence has not been updated in many
>> years. The syntax file has not kept up with changes to Oracle (19c is now
>> mainstream while
>> > syntax file only supports through 9i).
>> >
>> > I have an update ( https://github.com/lee-lindley/vim_plsql_syntax )
>> and demonstrate decent test coverage in my screenshots. I can generate a
>> pull request, but the instructions in CONTRIBUTING.md say to contact the
>> maintainer first.
>> >
>> > Please advise.
>> >
>> > PS
>> >
>> > I don't have a "test" to add per se, but have a sample pl/sql file that
>> exercises much of the trickier syntax parsing I'm interested in. I'm
>> eyeballing it. If there is a separate document for creating test scripts or
>> examples for coverage
>> > checks on syntax files, please point me to it.
>> >
>>
>> If the maintainer is unreachable, would you volunteer to take care of
>> the plsql syntax then?
>>
>> And as a side note, if you have any changes for Oracle SQL, I'll happily
>> include any changes here:
>> https://github.com/chrisbra/vim-sqloracle-syntax/
>>
>> I don't use Oracle SQL as much as several years ago, but try to keep it
>> up to date if someone makes me aware of required changes.
>>
>>
>> Thanks,
>> Chris
>> --
>> Übrigens stellen die Priester uns nur darum als Stellvertreter Gottes
>> hin, um sich selbst als Werkzeuge und Dolmetscher der Gottheit
>> auszugeben.
>> -- Friedrich II. der Große (an Prinz Wilhelm von Braunschweig)
>>
>
--
--
You received this message from the "vim_dev" 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
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/526700f5-024b-4957-af97-9def8faa3ee2n%40googlegroups.com.