Forum Stats

  • 3,839,864 Users
  • 2,262,546 Discussions
  • 7,901,086 Comments

Discussions

Requests for the next release

Hey, couple of quality of life improvements that would really be valued in the next release:

1) Better syntax highlighting; as we are forced to set the file language to the Oracle-SQL and PLSQL to be able to run the queries it would be good if the language setup was as good as the default SQL highlighting. Currently the word LEFT is recognised as "constant.language.sqlplus.set_const_5.oraclesql" as is" IS NOT NULL" (one of these is a keyword, one is a boolean operation or a keyword, as where null is a value so could be argued that it should be another colour). These are different colours from keywords such as SELECT, but words such as JOIN, INNER, PURGE etc are not recognised at all. As well as this no functions seem to be highlighted (e.g. SUM, TRUNC). Because the definitions at the core of the language are set this way it is impossible to customise any highlighting as that vast majority of code is seen as the same type.

2) The ability to set the NLS in the user settings would be really appreciated, currently the default seems to be mm/dd/yyyy hh24:mi:ss but as someone in the UK this is obviously not how I would have it set, and having to run the setting command every single time I connect is not feasible.

3) I know it has been said before, but autocomplete on alias names for tables would be a step up from the current process.


Hopefully those are sensible and feasible suggestions!

Answers

  • Håkan Arpfors
    Håkan Arpfors Member Posts: 13 Red Ribbon

    Formatting of SQL and PL/SQL would also be a very nice feature to have.

    Håkan

  • Thanks for taking the time to give feedback. I have added these to our list for upcoming releases.

  • Hi, 

    We just released version 19.3.4 which should fix the NLS issue. Could you please try it out and let me know?

  • User_H3J7U
    User_H3J7U Member Posts: 1,062 Gold Trophy

    About syntax highlighting.

    Oracle 19c returns:

    select reserved, count(*) from v$reserved_words group by rollup(reserved);

    R  COUNT(*)
    - ----------
    N      2357
    Y       100
           2457
    

    Regexp does not allow fine-tuning of complex syntax.

    Sample of my additional keyword phrases in file oraclesql.tmLanguage.plist:

                    <dict>
                        <key>name</key>
                        <string>my.keyword.oraclesql</string>
                        <key>match</key>
                        <string>(?i)\b((FOR\s+UPDATE(\s+(WAIT|NOWAIT|SKIP\s+LOCKED))?)|(SET)|(DENSE_RANK\s+(FIRST|LAST))|((NATURAL\s+)?(INNER\s+)?JOIN)|(((LEFT|RIGHT)\s+(OUTER\s+)?)?JOIN)|(IS)|(OR\s+REPLACE)|(PURGE)|((CROSS|OUTER)\s+APPLY)|(LATERAL)|(BULK\s+COLLECT)|(ANALYTIC\s+VIEW))\b</string>
                    </dict>
                    <dict>
                        <key>name</key>
                        <string>my.overwrite_as_variable.oraclesql</string>
                        <key>match</key>
                        <string>(?i)\b((A)|(R)|(UP))\b</string>
                    </dict>
    
    

    But words may be separated by newlines, comments and may have other semantic in a different context.