Skip to content

trimTrailingWhitespace option is not respected by textDocument/formatting #827

@i-ky

Description

@i-ky

In short:

sending: {"params": {"textDocument": {"text": "<foo/>    \n\n", ...}}, "jsonrpc": "2.0", "method": "textDocument/didOpen"}
sending: {"params": {"textDocument": {"uri": "file:///tmp/test.xml"}, "options": {..., "trimTrailingWhitespace": false, ...}}, "jsonrpc": "2.0", "id": 1, "method": "textDocument/formatting"}
{u'jsonrpc': u'2.0', u'id': 1, u'result': [{u'newText': u'<foo/>\n', u'range': {u'start': {u'line': 0, u'character': 0}, u'end': {u'line': 2, u'character': 0}}}]}

Here is a full listings of communications (I'm using pylspclient in a Python script):

sending: {"params": {"processId": null, "initializationOptions": {"settings": {"xml": {"catalogs": [], "logs": {"client": true, "file": "/tmp/xml.log"}, "trace": {"server": "verbose"}}}}, "workspaceFolders": null, "trace": null, "rootUri": null, "rootPath": null, "capabilities": {}}, "jsonrpc": "2.0", "id": 0, "method": "initialize"}
Jul 20, 2020 4:30:21 PM org.eclipse.lemminx.XMLLanguageServer initialize
INFO: Initializing XML Language server
LemMinX Server info:
 - Version : 0.13.1
 - Java : /usr/lib/jvm/java-8-openjdk-amd64/jre
 - Git 3c6c0de - [maven-release-plugin] prepare release 0.13.1
Content-Length: 612

recieved message: {u'jsonrpc': u'2.0', u'id': 0, u'result': {u'capabilities': {u'renameProvider': True, u'foldingRangeProvider': True, u'typeDefinitionProvider': True, u'hoverProvider': True, u'definitionProvider': True, u'documentRangeFormattingProvider': True, u'codeLensProvider': {u'resolveProvider': False}, u'referencesProvider': True, u'documentLinkProvider': {u'resolveProvider': True}, u'textDocumentSync': 2, u'documentFormattingProvider': True, u'codeActionProvider': True, u'completionProvider': {u'triggerCharacters': [u'.', u':', u'<', u'"', u'=', u'/', u'\\', u'?', u"'", u'&'], u'resolveProvider': False}, u'documentSymbolProvider': True, u'documentHighlightProvider': True}}}
{u'jsonrpc': u'2.0', u'id': 0, u'result': {u'capabilities': {u'renameProvider': True, u'foldingRangeProvider': True, u'typeDefinitionProvider': True, u'hoverProvider': True, u'definitionProvider': True, u'documentRangeFormattingProvider': True, u'codeLensProvider': {u'resolveProvider': False}, u'referencesProvider': True, u'documentLinkProvider': {u'resolveProvider': True}, u'textDocumentSync': 2, u'documentFormattingProvider': True, u'codeActionProvider': True, u'completionProvider': {u'triggerCharacters': [u'.', u':', u'<', u'"', u'=', u'/', u'\\', u'?', u"'", u'&'], u'resolveProvider': False}, u'documentSymbolProvider': True, u'documentHighlightProvider': True}}}
{u'capabilities': {u'renameProvider': True, u'foldingRangeProvider': True, u'typeDefinitionProvider': True, u'hoverProvider': True, u'definitionProvider': True, u'documentRangeFormattingProvider': True, u'codeLensProvider': {u'resolveProvider': False}, u'referencesProvider': True, u'documentLinkProvider': {u'resolveProvider': True}, u'textDocumentSync': 2, u'documentFormattingProvider': True, u'codeActionProvider': True, u'completionProvider': {u'triggerCharacters': [u'.', u':', u'<', u'"', u'=', u'/', u'\\', u'?', u"'", u'&'], u'resolveProvider': False}, u'documentSymbolProvider': True, u'documentHighlightProvider': True}}
sending: {"params": {"textDocument": {"text": "<foo/>    \n\n", "version": 1, "uri": "file:///tmp/test.xml", "languageId": "xml"}}, "jsonrpc": "2.0", "method": "textDocument/didOpen"}
None
sending: {"params": {"textDocument": {"uri": "file:///tmp/test.xml"}, "options": {"preserveAttributeLineBreaks": true, "preservedNewlines": 5, "tabSize": 4, "trimTrailingWhitespace": false, "formatComments": false, "spaceBeforeEmptyCloseTag": false, "enabled": true, "insertSpaces": true, "preserveEmptyContent": true, "insertFinalNewline": true}}, "jsonrpc": "2.0", "id": 1, "method": "textDocument/formatting"}
Content-Length: 142

recieved message: {u'jsonrpc': u'2.0', u'id': 1, u'result': [{u'newText': u'<foo/>\n', u'range': {u'start': {u'line': 0, u'character': 0}, u'end': {u'line': 2, u'character': 0}}}]}
{u'jsonrpc': u'2.0', u'id': 1, u'result': [{u'newText': u'<foo/>\n', u'range': {u'start': {u'line': 0, u'character': 0}, u'end': {u'line': 2, u'character': 0}}}]}
Content-Length: 323

recieved message: {u'params': {u'uri': u'file:///tmp/test.xml', u'diagnostics': [{u'source': u'file:///tmp/test.xml', u'range': {u'start': {u'line': 0, u'character': 1}, u'end': {u'line': 0, u'character': 4}}, u'code': u'NoGrammarConstraints', u'message': u'No grammar constraints (DTD or XML Schema).', u'severity': 4}]}, u'jsonrpc': u'2.0', u'method': u'textDocument/publishDiagnostics'}
{u'params': {u'uri': u'file:///tmp/test.xml', u'diagnostics': [{u'source': u'file:///tmp/test.xml', u'range': {u'start': {u'line': 0, u'character': 1}, u'end': {u'line': 0, u'character': 4}}, u'code': u'NoGrammarConstraints', u'message': u'No grammar constraints (DTD or XML Schema).', u'severity': 4}]}, u'jsonrpc': u'2.0', u'method': u'textDocument/publishDiagnostics'}
sending: {"params": {}, "jsonrpc": "2.0", "id": 2, "method": "shutdown"}
Content-Length: 36

recieved message: {u'jsonrpc': u'2.0', u'id': 2, u'result': {}}
{u'jsonrpc': u'2.0', u'id': 2, u'result': {}}
{}
sending: {"params": {}, "jsonrpc": "2.0", "method": "exit"}

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingformattingThis issue or enhancement is related to formatting support

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions