Sublime Forum

Indent wrong using output_view.run_command("insert", {"characters": text})

#1

Hello, can you help me understand the difference about method1 and method2

def panel_init(window, panel_name, text):
    output_view = window.create_output_panel(panel_name)
    settings = output_view.settings()
    settings.set("word_wrap", False)
    # 进行文件追踪
    settings.set("result_file_regex", r"^File -- (.*) -- (\d+):(\d+)$")
    settings.set("result_line_regex", r"^(\d+)\|.*$")
    output_view.assign_syntax("Packages/1_syntax_txt2/txtgg.sublime-syntax")

    # !!! method1, always good indent
    # sublime.set_clipboard(text)
    # output_view.run_command("paste")

    # !!! method2, bad
    output_view.run_command("insert", {"characters": text})

    window.run_command("show_panel", {"output_view": f"output.{panel_name}"})
    output_view.show_at_center(sublime.Region(0, 0))
    return output_view


"""
panel_init(window, "tmp", text)
--------------------
text as follow
--------------------
#"f-61"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\00gery.sublime-commands -- 1:0
 0543|        "caption": "wwang snippet cpp |> function |> istprint",
 0687|        "caption": "wwang snippet nim |> function |> istprint",
 0711|        "caption": "wwang snippet python |> function |> istprint",

#"f-75"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\action_named.py -- 1:0
 0036|def istprint(*args, **kwargs):

#"f-77"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\action_panels.py -- 1:0
 0146| 0543|        "caption": "wwang snippet cpp |> function |> istprint",
 0147| 0687|        "caption": "wwang snippet nim |> function |> istprint",
 0148| 0711|        "caption": "wwang snippet python |> function |> istprint",
 0152| 0036|def istprint(*args, **kwargs):
 0156| 0047|def istprint(*args, **kwargs):
--------------------
method1
--------------------
#"f-61"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\00gery.sublime-commands -- 1:0
 0543|        "caption": "wwang snippet cpp |> function |> istprint",
 0687|        "caption": "wwang snippet nim |> function |> istprint",
 0711|        "caption": "wwang snippet python |> function |> istprint",

#"f-75"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\action_named.py -- 1:0
 0036|def istprint(*args, **kwargs):

#"f-77"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\action_panels.py -- 1:0
 0146| 0543|        "caption": "wwang snippet cpp |> function |> istprint",
 0147| 0687|        "caption": "wwang snippet nim |> function |> istprint",
 0148| 0711|        "caption": "wwang snippet python |> function |> istprint",
 0152| 0036|def istprint(*args, **kwargs):
 0156| 0047|def istprint(*args, **kwargs):
--------------------
method2
--------------------
#"f-61"
File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\00gery.sublime-commands -- 1:0
 0543|        "caption": "wwang snippet cpp |> function |> istprint",
  0687|        "caption": "wwang snippet nim |> function |> istprint",
   0711|        "caption": "wwang snippet python |> function |> istprint",

   #"f-75"
   File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\action_named.py -- 1:0
    0036|def istprint(*args, **kwargs):

    #"f-77"
    File -- C:\zone1a\zz-sublimetext\Data\Packages\1_pack_1command\action_panels.py -- 1:0
     0146| 0543|        "caption": "wwang snippet cpp |> function |> istprint",
      0147| 0687|        "caption": "wwang snippet nim |> function |> istprint",
       0148| 0711|        "caption": "wwang snippet python |> function |> istprint",
        0152| 0036|def istprint(*args, **kwargs):
         0156| 0047|def istprint(*args, **kwargs):
"""

0 Likes

#2

insert does the equivalent of typing those characters. For output you should use the append command instead.

0 Likes

#3

Thank you! That works.

0 Likes