classifyToken maps a TokenWithSpan to a semantic token type index. Returns -1 for tokens that should not be included in the semantic token stream.
(tok models.TokenWithSpan)
| 1769 | // classifyToken maps a TokenWithSpan to a semantic token type index. |
| 1770 | // Returns -1 for tokens that should not be included in the semantic token stream. |
| 1771 | func classifyToken(tok models.TokenWithSpan) int { |
| 1772 | switch tok.Token.Type { |
| 1773 | case models.TokenTypeKeyword, |
| 1774 | models.TokenTypeSelect, models.TokenTypeFrom, models.TokenTypeWhere, |
| 1775 | models.TokenTypeInsert, models.TokenTypeUpdate, models.TokenTypeDelete, |
| 1776 | models.TokenTypeCreate, models.TokenTypeDrop, models.TokenTypeAlter, |
| 1777 | models.TokenTypeTable, models.TokenTypeIndex, |
| 1778 | models.TokenTypeJoin, models.TokenTypeLeft, models.TokenTypeRight, |
| 1779 | models.TokenTypeInner, models.TokenTypeOuter, |
| 1780 | models.TokenTypeOn, models.TokenTypeAs, |
| 1781 | models.TokenTypeAnd, models.TokenTypeOr, models.TokenTypeNot, |
| 1782 | models.TokenTypeIn, models.TokenTypeIs, models.TokenTypeNull, |
| 1783 | models.TokenTypeLike, |
| 1784 | models.TokenTypeOrder, models.TokenTypeGroup, models.TokenTypeBy, |
| 1785 | models.TokenTypeHaving, models.TokenTypeLimit, models.TokenTypeOffset, |
| 1786 | models.TokenTypeWith, models.TokenTypeUnion, |
| 1787 | models.TokenTypeIntersect, models.TokenTypeExcept, |
| 1788 | models.TokenTypeDistinct, |
| 1789 | models.TokenTypeCase, models.TokenTypeWhen, models.TokenTypeThen, |
| 1790 | models.TokenTypeElse, models.TokenTypeEnd: |
| 1791 | return semTokKeyword |
| 1792 | case models.TokenTypeWord, models.TokenTypeIdentifier: |
| 1793 | return semTokIdentifier |
| 1794 | case models.TokenTypeNumber: |
| 1795 | return semTokNumber |
| 1796 | case models.TokenTypeString, |
| 1797 | models.TokenTypeSingleQuotedString, models.TokenTypeDoubleQuotedString, |
| 1798 | models.TokenTypeDollarQuotedString, models.TokenTypeEscapedStringLiteral, |
| 1799 | models.TokenTypeNationalStringLiteral, models.TokenTypeUnicodeStringLiteral, |
| 1800 | models.TokenTypeHexStringLiteral: |
| 1801 | return semTokString |
| 1802 | case models.TokenTypeWhitespace: |
| 1803 | // Whitespace tokens that are comments |
| 1804 | if tok.Token.Word == nil { |
| 1805 | return -1 |
| 1806 | } |
| 1807 | return semTokComment |
| 1808 | case models.TokenTypeEq, models.TokenTypeNeq, |
| 1809 | models.TokenTypeLt, models.TokenTypeGt, |
| 1810 | models.TokenTypeLtEq, models.TokenTypeGtEq, |
| 1811 | models.TokenTypePlus, models.TokenTypeMinus, |
| 1812 | models.TokenTypeMul, models.TokenTypeDiv, |
| 1813 | models.TokenTypeMod: |
| 1814 | return semTokOperator |
| 1815 | default: |
| 1816 | return -1 // don't classify |
| 1817 | } |
| 1818 | } |
no outgoing calls
no test coverage detected