Exemplo n.º 1
0
    def _threaded_code_format(self, text_document, options, monitor: IMonitor):
        from robotframework_ls.impl.formatting import robot_source_format
        from robotframework_ls.impl.formatting import create_text_edit_from_diff
        from robocorp_ls_core.lsp import TextDocumentItem

        text_document_item = TextDocumentItem(**text_document)
        text = text_document_item.text
        if not text:
            completion_context = self._create_completion_context(
                text_document_item.uri, 0, 0, monitor
            )
            if completion_context is None:
                return []
            text = completion_context.doc.source

        if not text:
            return []

        if options is None:
            options = {}
        tab_size = options.get("tabSize", 4)

        new_contents = robot_source_format(text, space_count=tab_size)
        if new_contents is None or new_contents == text:
            return []
        return [x.to_dict() for x in create_text_edit_from_diff(text, new_contents)]
Exemplo n.º 2
0
def test_formatting_basic(data_regression):
    from robotframework_ls.impl.formatting import (
        robot_source_format,
        create_text_edit_from_diff,
    )
    from robocode_ls_core.workspace import Document

    contents = u"""
***Settings***
[Documentation]Some doc

***Test Case***
Check
    Call  1  2"""
    new_contents = robot_source_format(contents)
    assert u"*** Settings ***" in new_contents

    text_edits = create_text_edit_from_diff(contents, new_contents)

    doc = Document("", contents)
    doc.apply_text_edits(text_edits)
    data_regression.check(doc.source,
                          basename="test_formatting_basic_formatted_doc")
    data_regression.check([x.to_dict() for x in text_edits],
                          basename="test_formatting_basic_text_edits")