Exemplo n.º 1
0
def set_view_options(
    view: sublime.View,
    *,
    name: Optional[str] = None,
    settings: Optional[dict] = None,
    read_only: Optional[bool] = None,
    scratch: Optional[bool] = None,
    overwrite: Optional[bool] = None,
    syntax: Optional[str] = None,
    scope: Optional[str] = None,
    encoding: Optional[str] = None,
    content: Optional[str] = None,
    line_endings: Optional[str] = None
) -> None:
    if name is not None:
        view.set_name(name)

    if content is not None:
        view.run_command('append', {'characters': content})

    if settings is not None:
        view_settings = view.settings()
        for key, value in settings.items():
            view_settings.set(key, value)

    if read_only is not None:
        view.set_read_only(read_only)

    if scratch is not None:
        view.set_scratch(scratch)

    if overwrite is not None:
        view.set_overwrite_status(overwrite)

    if scope is not None:
        view.assign_syntax(get_syntax_for_scope(scope))

    if syntax is not None:
        view.assign_syntax(syntax)

    if encoding is not None:
        view.set_encoding(to_sublime(encoding))

    if line_endings is not None:
        view.set_line_endings(LineEnding(line_endings).name)