@@ -99,6 +99,12 @@ public function format(string $string, string $indentString = ' '): string
9999
100100 // Format token by token
101101 while ($ token = $ cursor ->next (Token::TOKEN_TYPE_WHITESPACE )) {
102+ $ prevNotWhitespaceToken = $ cursor ->subCursor ()->previous (Token::TOKEN_TYPE_WHITESPACE );
103+ $ tokenValueUpper = strtoupper ($ token ->value ());
104+ if ($ prevNotWhitespaceToken !== null && $ prevNotWhitespaceToken ->value () === '. ' ) {
105+ $ tokenValueUpper = false ;
106+ }
107+
102108 $ highlighted = $ this ->highlighter ->highlightToken (
103109 $ token ->type (),
104110 $ token ->value (),
@@ -122,7 +128,6 @@ public function format(string $string, string $indentString = ' '): string
122128 if ($ newline ) {
123129 $ return = rtrim ($ return , ' ' );
124130
125- $ prevNotWhitespaceToken = $ cursor ->subCursor ()->previous (Token::TOKEN_TYPE_WHITESPACE );
126131 if ($ prevNotWhitespaceToken !== null && $ prevNotWhitespaceToken ->value () === '; ' ) {
127132 $ return .= "\n" ;
128133 }
@@ -274,7 +279,7 @@ public function format(string $string, string $indentString = ' '): string
274279 }
275280
276281 // if SQL 'LIMIT' clause, start variable to reset newline
277- if (strtoupper ( $ token -> value ()) === 'LIMIT ' && ! $ inlineParentheses ) {
282+ if ($ tokenValueUpper === 'LIMIT ' && ! $ inlineParentheses ) {
278283 $ clauseLimit = true ;
279284 }
280285 } elseif ($ token ->value () === '; ' ) {
@@ -284,30 +289,28 @@ public function format(string $string, string $indentString = ' '): string
284289 }
285290
286291 $ newline = true ;
287- } elseif (strtoupper ( $ token -> value ()) === 'CASE ' ) {
292+ } elseif ($ tokenValueUpper === 'CASE ' ) {
288293 $ increaseBlockIndent = true ;
289- } elseif (strtoupper ( $ token -> value ()) === 'BEGIN ' ) {
294+ } elseif ($ tokenValueUpper === 'BEGIN ' ) {
290295 $ newline = true ;
291296 $ increaseBlockIndent = true ;
292- } elseif (strtoupper ( $ token -> value ()) === 'LOOP ' ) {
297+ } elseif ($ tokenValueUpper === 'LOOP ' ) {
293298 // https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/basic-LOOP-statement.html
294299
295- $ prevNotWhitespaceToken = $ cursor ->subCursor ()->previous (Token::TOKEN_TYPE_WHITESPACE );
296300 if ($ prevNotWhitespaceToken !== null && strtoupper ($ prevNotWhitespaceToken ->value ()) !== 'END ' ) {
297301 $ newline = true ;
298302 $ increaseBlockIndent = true ;
299303 }
300- } elseif (in_array (strtoupper ( $ token -> value ()) , ['WHEN ' , 'THEN ' , 'ELSE ' , 'END ' ], true )) {
301- if (strtoupper ( $ token -> value ()) !== 'THEN ' ) {
304+ } elseif (in_array ($ tokenValueUpper , ['WHEN ' , 'THEN ' , 'ELSE ' , 'END ' ], true )) {
305+ if ($ tokenValueUpper !== 'THEN ' ) {
302306 $ decreaseIndentationLevelFx ();
303307
304- $ prevNotWhitespaceToken = $ cursor ->subCursor ()->previous (Token::TOKEN_TYPE_WHITESPACE );
305308 if ($ prevNotWhitespaceToken !== null && strtoupper ($ prevNotWhitespaceToken ->value ()) !== 'CASE ' ) {
306309 $ appendNewLineIfNotAddedFx ();
307310 }
308311 }
309312
310- if (strtoupper ( $ token -> value ()) === 'THEN ' || strtoupper ( $ token -> value ()) === 'ELSE ' ) {
313+ if ($ tokenValueUpper === 'THEN ' || $ tokenValueUpper === 'ELSE ' ) {
311314 $ newline = true ;
312315 $ increaseBlockIndent = true ;
313316 }
@@ -338,7 +341,6 @@ public function format(string $string, string $indentString = ' '): string
338341 }
339342 } elseif ($ token ->isOfType (Token::TOKEN_TYPE_BOUNDARY )) {
340343 // Multiple boundary characters in a row should not have spaces between them (not including parentheses)
341- $ prevNotWhitespaceToken = $ cursor ->subCursor ()->previous (Token::TOKEN_TYPE_WHITESPACE );
342344 if ($ prevNotWhitespaceToken !== null && $ prevNotWhitespaceToken ->isOfType (Token::TOKEN_TYPE_BOUNDARY )) {
343345 $ prevToken = $ cursor ->subCursor ()->previous ();
344346 if ($ prevToken !== null && ! $ prevToken ->isOfType (Token::TOKEN_TYPE_WHITESPACE )) {
0 commit comments