sublimelsp / LSP-tailwindcss

Tailwind css support for Sublime's LSP plugin
MIT License
54 stars 5 forks source link

TypeError: sequence item 8: expected str instance, NoneType found #21

Closed zigi05 closed 2 years ago

zigi05 commented 2 years ago

It works well in tailwind-example on my local machine, but it doesn't work in my project. The tailwind-example uses tailwindcss@1.1.2 and my project uses tailwindcss@2.2.9. Once I update tailwindcss to version 2.2.9 in tailwind-example, it stops working as well and I get the same error as in my project, so it seems not to be working with tailwindcss version at least 2.2+:

Traceback (most recent call last):
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 175, in on_capability_added_async
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 96, in _register_auto_complete_triggers
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 130, in _apply_auto_complete_triggers
TypeError: sequence item 8: expected str instance, NoneType found
predragnikolic commented 2 years ago

Here are the logs when the server boots with tailwindcss@1.1.2:

``` :: --> LSP-tailwindcss initialize(1): {'rootUri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example', 'rootPath': '/home/predragnikolic/Documents/sandbox/tailwind-example', 'processId': 19817, 'workspaceFolders': [{'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example', 'name': 'tailwind-example'}], 'clientInfo': {'version': '1.12.1', 'name': 'Sublime Text LSP'}, 'capabilities': {'textDocument': {'formatting': {'dynamicRegistration': True}, 'implementation': {'dynamicRegistration': True, 'linkSupport': True}, 'references': {'dynamicRegistration': True}, 'documentHighlight': {'dynamicRegistration': True}, 'hover': {'dynamicRegistration': True, 'contentFormat': ['markdown', 'plaintext']}, 'codeAction': {'resolveSupport': {'properties': ['edit']}, 'dynamicRegistration': True, 'dataSupport': True, 'codeActionLiteralSupport': {'codeActionKind': {'valueSet': ['quickfix', 'refactor', 'refactor.extract', 'refactor.inline', 'refactor.rewrite', 'source.organizeImports']}}}, 'selectionRange': {'dynamicRegistration': True}, 'typeDefinition': {'dynamicRegistration': True, 'linkSupport': True}, 'synchronization': {'willSaveWaitUntil': True, 'dynamicRegistration': True, 'willSave': True, 'didSave': True}, 'codeLens': {'dynamicRegistration': True}, 'colorProvider': {'dynamicRegistration': True}, 'rangeFormatting': {'dynamicRegistration': True}, 'publishDiagnostics': {'relatedInformation': True, 'versionSupport': True, 'dataSupport': True, 'tagSupport': {'valueSet': [1, 2]}, 'codeDescriptionSupport': True}, 'completion': {'completionItemKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, 'dynamicRegistration': True, 'insertTextMode': 2, 'completionItem': {'deprecatedSupport': True, 'snippetSupport': True, 'tagSupport': {'valueSet': [1]}, 'insertTextModeSupport': {'valueSet': [2]}, 'documentationFormat': ['markdown', 'plaintext'], 'labelDetailsSupport': True, 'resolveSupport': {'properties': ['detail', 'documentation', 'additionalTextEdits']}}}, 'documentSymbol': {'dynamicRegistration': True, 'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, 'tagSupport': {'valueSet': [1]}, 'hierarchicalDocumentSymbolSupport': True}, 'definition': {'dynamicRegistration': True, 'linkSupport': True}, 'signatureHelp': {'dynamicRegistration': True, 'signatureInformation': {'documentationFormat': ['markdown', 'plaintext'], 'parameterInformation': {'labelOffsetSupport': True}}}, 'declaration': {'dynamicRegistration': True, 'linkSupport': True}, 'rename': {'dynamicRegistration': True, 'prepareSupport': True}}, 'workspace': {'workspaceFolders': True, 'applyEdit': True, 'executeCommand': {}, 'didChangeConfiguration': {'dynamicRegistration': True}, 'workspaceEdit': {'documentChanges': True, 'failureHandling': 'abort'}, 'symbol': {'dynamicRegistration': True, 'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, 'tagSupport': {'valueSet': [1]}}, 'configuration': True}, 'window': {'workDoneProgress': True, 'showMessage': {'messageActionItem': {'additionalPropertiesSupport': True}}, 'showDocument': {'support': True}}, 'general': {'regularExpressions': {'engine': 'ECMAScript'}, 'markdown': {'parser': 'Python-Markdown', 'version': '3.2.2'}}, 'experimental': {}}, 'initializationOptions': {}} :: <<< LSP-tailwindcss 1: {'capabilities': {'textDocumentSync': {'change': {'syncKind': 1}, 'save': {}, 'didOpen': {}, 'didClose': {}}}} :: -> LSP-tailwindcss initialized: {} :: -> LSP-tailwindcss workspace/didChangeConfiguration: {'settings': {'tailwindCSS': {'experimental': {'classRegex': []}, 'validate': True, 'colorDecorators': True, 'emmetCompletions': False, 'rootFontSize': 16, 'lint': {'invalidApply': 'error', 'invalidScreen': 'error', 'invalidTailwindDirective': 'error', 'invalidConfigPath': 'error', 'cssConflict': 'warning', 'recommendedVariantOrder': 'warning', 'invalidVariant': 'error'}, 'showPixelEquivalents': True}}} :: -> LSP-tailwindcss textDocument/didOpen: {'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js', 'languageId': 'javascript', 'version': 0, 'text': 'import \'./styles.css\';\n\n\'
\'\n\n'}} LSP-tailwindcss: Found Tailwind CSS config file: /home/predragnikolic/Documents/sandbox/tailwind-example/src/tailwind.cjs :: <- LSP-tailwindcss window/logMessage: {'message': 'Found Tailwind CSS config file: /home/predragnikolic/Documents/sandbox/tailwind-example/src/tailwind.cjs', 'type': 4} LSP-tailwindcss: Loaded postcss v7.0.18: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss LSP-tailwindcss: Loaded tailwindcss v1.1.2: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss :: <- LSP-tailwindcss window/logMessage: {'message': 'Loaded postcss v7.0.18: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss', 'type': 4} :: <- LSP-tailwindcss window/logMessage: {'message': 'Loaded tailwindcss v1.1.2: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss', 'type': 4} :: <-- LSP-tailwindcss workspace/configuration(0): {'items': [{'scopeUri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js', 'section': 'editor'}]} :: >>> LSP-tailwindcss 0: [None] ```

and here are the logs with tailwindcss@2.2.9

``` :: --> LSP-tailwindcss initialize(1): {'capabilities': {'window': {'showDocument': {'support': True}, 'showMessage': {'messageActionItem': {'additionalPropertiesSupport': True}}, 'workDoneProgress': True}, 'general': {'markdown': {'parser': 'Python-Markdown', 'version': '3.2.2'}, 'regularExpressions': {'engine': 'ECMAScript'}}, 'workspace': {'workspaceEdit': {'documentChanges': True, 'failureHandling': 'abort'}, 'didChangeConfiguration': {'dynamicRegistration': True}, 'workspaceFolders': True, 'applyEdit': True, 'symbol': {'tagSupport': {'valueSet': [1]}, 'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, 'dynamicRegistration': True}, 'configuration': True, 'executeCommand': {}}, 'experimental': {}, 'textDocument': {'documentSymbol': {'hierarchicalDocumentSymbolSupport': True, 'tagSupport': {'valueSet': [1]}, 'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, 'dynamicRegistration': True}, 'completion': {'completionItem': {'insertTextModeSupport': {'valueSet': [2]}, 'documentationFormat': ['markdown', 'plaintext'], 'snippetSupport': True, 'deprecatedSupport': True, 'tagSupport': {'valueSet': [1]}, 'labelDetailsSupport': True, 'resolveSupport': {'properties': ['detail', 'documentation', 'additionalTextEdits']}}, 'insertTextMode': 2, 'completionItemKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}, 'dynamicRegistration': True}, 'codeLens': {'dynamicRegistration': True}, 'rename': {'prepareSupport': True, 'dynamicRegistration': True}, 'definition': {'linkSupport': True, 'dynamicRegistration': True}, 'typeDefinition': {'linkSupport': True, 'dynamicRegistration': True}, 'hover': {'contentFormat': ['markdown', 'plaintext'], 'dynamicRegistration': True}, 'references': {'dynamicRegistration': True}, 'synchronization': {'willSaveWaitUntil': True, 'didSave': True, 'willSave': True, 'dynamicRegistration': True}, 'implementation': {'linkSupport': True, 'dynamicRegistration': True}, 'publishDiagnostics': {'tagSupport': {'valueSet': [1, 2]}, 'dataSupport': True, 'versionSupport': True, 'relatedInformation': True, 'codeDescriptionSupport': True}, 'codeAction': {'codeActionLiteralSupport': {'codeActionKind': {'valueSet': ['quickfix', 'refactor', 'refactor.extract', 'refactor.inline', 'refactor.rewrite', 'source.organizeImports']}}, 'dataSupport': True, 'resolveSupport': {'properties': ['edit']}, 'dynamicRegistration': True}, 'declaration': {'linkSupport': True, 'dynamicRegistration': True}, 'rangeFormatting': {'dynamicRegistration': True}, 'colorProvider': {'dynamicRegistration': True}, 'formatting': {'dynamicRegistration': True}, 'documentHighlight': {'dynamicRegistration': True}, 'selectionRange': {'dynamicRegistration': True}, 'signatureHelp': {'signatureInformation': {'parameterInformation': {'labelOffsetSupport': True}, 'documentationFormat': ['markdown', 'plaintext']}, 'dynamicRegistration': True}}}, 'rootPath': '/home/predragnikolic/Documents/sandbox/tailwind-example', 'workspaceFolders': [{'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example', 'name': 'tailwind-example'}], 'processId': 20013, 'clientInfo': {'name': 'Sublime Text LSP', 'version': '1.12.1'}, 'rootUri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example', 'initializationOptions': {}} :: <<< LSP-tailwindcss 1: {'capabilities': {'textDocumentSync': {'save': {}, 'didClose': {}, 'didOpen': {}, 'change': {'syncKind': 1}}}} :: -> LSP-tailwindcss initialized: {} :: -> LSP-tailwindcss workspace/didChangeConfiguration: {'settings': {'tailwindCSS': {'showPixelEquivalents': True, 'lint': {'invalidTailwindDirective': 'error', 'invalidApply': 'error', 'invalidConfigPath': 'error', 'invalidScreen': 'error', 'cssConflict': 'warning', 'invalidVariant': 'error', 'recommendedVariantOrder': 'warning'}, 'validate': True, 'colorDecorators': True, 'emmetCompletions': False, 'rootFontSize': 16, 'experimental': {'classRegex': []}}}} :: -> LSP-tailwindcss textDocument/didOpen: {'textDocument': {'text': 'import \'./styles.css\';\n\n\'
\'\n\n', 'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js', 'version': 0, 'languageId': 'javascript'}} LSP-tailwindcss: Found Tailwind CSS config file: /home/predragnikolic/Documents/sandbox/tailwind-example/src/tailwind.cjs LSP-tailwindcss: Loaded postcss v7.0.18: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss LSP-tailwindcss: Loaded tailwindcss v2.2.9: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss :: <- LSP-tailwindcss window/logMessage: {'type': 4, 'message': 'Found Tailwind CSS config file: /home/predragnikolic/Documents/sandbox/tailwind-example/src/tailwind.cjs'} LSP-tailwindcss: Tailwind CSS: [object Object] is not a PostCSS plugin Error: [object Object] is not a PostCSS plugin at Processor.normalize (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/processor.js:168:15) at new Processor (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/processor.js:52:25) at postcss (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/postcss.js:55:10) at /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:24:33 at arrayMap (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:653:23) at map (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:9622:14) at Function.flatMap (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:9325:26) at parseObjectStyles (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:23:26) at parseObjectStyles (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:20:12) at /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/processPlugins.js:41:123 :: <- LSP-tailwindcss window/logMessage: {'type': 4, 'message': 'Loaded postcss v7.0.18: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss'} :: <- LSP-tailwindcss window/logMessage: {'type': 4, 'message': 'Loaded tailwindcss v2.2.9: /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss'} :: <- LSP-tailwindcss textDocument/publishDiagnostics: {'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js', 'diagnostics': []} :: <-- LSP-tailwindcss client/registerCapability(0): {'registrations': [{'method': 'textDocument/hover', 'registerOptions': {'documentSelector': None}, 'id': 'd6dc6421-a37e-44bf-a6bb-b0306419cf03'}, {'method': 'textDocument/documentColor', 'registerOptions': {'documentSelector': None}, 'id': '9b484c60-c3d8-4f00-b1e6-df04f1eae383'}, {'method': 'textDocument/codeAction', 'registerOptions': {'documentSelector': None}, 'id': '6cc26b61-fdbb-4177-8983-e69b13710c66'}, {'method': 'textDocument/completion', 'registerOptions': {'documentSelector': None, 'triggerCharacters': ['"', "'", '`', ' ', '.', '[', '!', '/', None], 'resolveProvider': True}, 'id': '88621778-7cd6-4cb7-96da-886650286aad'}]} :: >>> LSP-tailwindcss 0: None :: <- LSP-tailwindcss window/logMessage: {'type': 1, 'message': 'Tailwind CSS: [object Object] is not a PostCSS plugin\nError: [object Object] is not a PostCSS plugin\n at Processor.normalize (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/processor.js:168:15)\n at new Processor (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/processor.js:52:25)\n at postcss (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/postcss.js:55:10)\n at /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:24:33\n at arrayMap (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:653:23)\n at map (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:9622:14)\n at Function.flatMap (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:9325:26)\n at parseObjectStyles (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:23:26)\n at parseObjectStyles (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:20:12)\n at /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/processPlugins.js:41:123'} :: LSP-tailwindcss textDocument/didChange: {'contentChanges': [{'text': 'import \'./styles.css\';\n\n\'
\'\n\na'}], 'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js', 'version': 1}} :: --> LSP-tailwindcss textDocument/completion(2): {'position': {'character': 1, 'line': 4}, 'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js'}} :: <<< LSP-tailwindcss 2: None :: --> LSP-tailwindcss textDocument/documentColor(3): {'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/tailwind-example/src/index.js'}} :: <<< LSP-tailwindcss 3: [] ```

So with v2.2.9, tailwindcss-intellisense throws this error Tailwind CSS: [object Object] is not a PostCSS plugin.

predragnikolic commented 2 years ago

This is a server bug, When the server tries to dynamically register the completionProvider capability, it sends these options:

{'triggerCharacters': ['"', "'", '`', ' ', '.', '[', '!', '/', None], 'id': 'fec37b14-50fd-4320-9a49-5646c22b8d58', 'resolveProvider': True}

If we look closer to the triggerCharacters, we can notice None in the array, which is not by the spec. triggerCharacters?: string[]; (link to the spec https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#completionOptions)

zigi05 commented 2 years ago

So how to fix it?

predragnikolic commented 2 years ago

This should be further reported to the https://github.com/tailwindlabs/tailwindcss-intellisense repo.


I tried to update to the latest release of tailwindcss-intellisense, from v0.6.15(current version that LSP-tailwindcss uses) to https://github.com/tailwindlabs/tailwindcss-intellisense/releases/tag/v0.7.0 just to see if it maybe fixed.

But tailwindcss-intellisense v0.7.0 makes LSP-taiwlindcss not usable even when using tailwind-example with tailwindcss@1.1.2. (Which means that further issues to tailwindcss-intellisense should be reported as well. ) (FWIW I successfully upgraded the server to v0.7.1 to https://github.com/sublimelsp/LSP-tailwindcss/pull/25)

predragnikolic commented 2 years ago

I tried to filter out None values from trigger chars, but even then intellisense wont work, and it is probably due to this error:

Error: [object Object] is not a PostCSS plugin
    at Processor.normalize (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/processor.js:168:15)
    at new Processor (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/processor.js:52:25)
    at postcss (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/postcss/lib/postcss.js:55:10)
    at /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:24:33
    at arrayMap (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:653:23)
    at map (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:9622:14)
    at Function.flatMap (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/node_modules/lodash/lodash.js:9325:26)
    at parseObjectStyles (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:23:26)
    at parseObjectStyles (/home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/parseObjectStyles.js:20:12)
    at /home/predragnikolic/Documents/sandbox/tailwind-example/node_modules/tailwindcss/lib/util/processPlugins.js:41:123
zigi05 commented 2 years ago

Just to inform that since the update of LSP-taiwlindcss to v0.0.5 that uses tailwindcss-intellisense v0.7.1, my issue reported in this thread persists, and adds more to the error message mentioned above:

failed to register session LSP-tailwindcss to listener ViewListener(18)
Traceback (most recent call last):
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/core/windows.py", line 276, in _publish_sessions_to_listener_async
    listener.on_session_initialized_async(session)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/documents.py", line 219, in on_session_initialized_async
    self._session_views[session.config.name] = SessionView(self, session, self._uri)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 51, in __init__
    session_buffer = SessionBuffer(self, buffer_id, uri)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_buffer.py", line 87, in __init__
    self.session.register_session_buffer_async(self)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/core/sessions.py", line 942, in register_session_buffer_async
    data.check_applicable(sb)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/core/sessions.py", line 847, in check_applicable
    self.registration_id, self.capability_path, self.registration_path, self.options)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_buffer.py", line 151, in register_capability_async
    sv.on_capability_added_async(registration_id, capability_path, options)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 175, in on_capability_added_async
    self._register_auto_complete_triggers(registration_id, trigger_chars or [])
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 96, in _register_auto_complete_triggers
    self._apply_auto_complete_triggers(self.view.settings(), trigger_chars, registration_id)
  File "C:\Users\zigi\AppData\Roaming\Sublime Text\Installed Packages\LSP.sublime-package\plugin/session_view.py", line 130, in _apply_auto_complete_triggers
    trigger["characters"] = "".join(trigger_chars)
zigi05 commented 2 years ago

I'm confused, do only I have this issue? How do others use it with Sublime Text 4 on Windows 10 then?

predragnikolic commented 2 years ago

So I took a closer look, We know that LSP-tailwindcss works with tailwindcss@1.1.2.

If we bump to tailwindcss@2.2.9 in the workspace, LSP-tailwindcss will log this error: Error: [object Object] is not a PostCSS plugin. And LSP-tailwindcss will stop working.

Based on this stack overflow thread https://stackoverflow.com/questions/40090111/postcss-error-object-object-is-not-a-postcss-plugin, we also need to bump the postcss dependency.

Try installing a newer version of postcss.

npm i -d postcss@8.3.9

That made the LSP-tailwindcss work for me with tailwindcss@2.2.9.

predragnikolic commented 2 years ago

@zigi05 let me know if this fixed your problem :-)

zigi05 commented 2 years ago

@zigi05 let me know if this fixed your problem :-)

Yes, I did fix it. You've been very helpful, thank you.