# Path: plugins/lib/view_utils.py
# def get_text(view):
#     """Returns the whole string of a buffer. Alias for `coorded_substr(view)`.
#     """
#     return coorded_substr(view)
# 
# Path: plugins/lib/fileconv/dumpers.py
# class DumperProto(object):
# class JSONDumper(DumperProto):
# class PlistDumper(DumperProto):
# class YAMLDumper(DumperProto):
#     def __init__(self, window, view, new_file_path, output=None, file_path=None, *args, **kwargs):
#     def validate_data(self, data, *args, **kwargs):
#     def _validate_data(self, data, funcs):
#         def check_recursive(obj):
#     def validate_params(self, params):
#     def dump(self, data, *args, **kwargs):
#     def write(self, data, *args, **kwargs):
#     def validate_data(self, data):
#     def write(self, data, params, *args, **kwargs):
#     def validate_data(self, data):
#     def write(self, data, params, *args, **kwargs):
#     def validate_data(self, data):
#     def write(self, data, params, *args, **kwargs):
# 
# Path: plugins/lib/fileconv/loaders.py
# def strip_js_comments(string):
#     def __init__(self, window, view, file_path=None, output=None, *args, **kwargs):
#     def _pre_init_(cls):
#     def get_ext_appendix(cls, file_name):
#     def get_new_file_ext(cls, view, file_path=None):
#     def new_file_ext(self):
#     def load_options(self, view):
#     def get_options(self):
#     def file_is_valid(cls, view, file_path=None):
#     def is_valid(self):
#     def load(self, *args, **kwargs):
#     def parse(self, *args, **kwargs):
#     def parse(self, *args, **kwargs):
#     def file_is_valid(cls, view, file_path=None):
#     def parse(self, *args, **kwargs):
#     def parse(self, *args, **kwargs):
# class LoaderProto(object):
# class JSONLoader(LoaderProto):
# class PlistLoader(LoaderProto):
# class YAMLLoader(LoaderProto):
#     DOCTYPE = "<!DOCTYPE plist"


import os
import time
import sublime
import sublime_plugin
from sublime_lib import OutputPanel
from pathlib import Path
from .lib.view_utils import get_text
from .lib.fileconv import dumpers, loaders
                                            file_path.stem + get_new_ext(target_format_)])
                            items.append(itm)

                    def on_select(index):
                        if index < 0 or index >= len(items):
                            # canceled or other magic
                            output.print("\n\nBuild canceled.")
                            return

                        target = items[index]
                        output.print(' %s\n' % target['name'])

                        kwargs.update(target['kwargs'])
                        kwargs.update(dict(source_format=source_format, _output=output))
                        self.run(**kwargs)

                    # Forward all params to the new command call
                    self.window.show_quick_panel(options, on_select)
                    return

                target_format = opts['target_format']
                # Validate the shit again, but this time print to output panel
                if source_format is not None and target_format == source_format:
                    return output.print("\nTarget and source file format are identical. (%s)"
                                        % target_format)

                if target_format not in dumpers.get:
                    return output.print("\nDumper for '%s' not supported/implemented."
                                        % target_format)


# Path: plugins/lib/view_utils.py
# def get_text(view):
#     """Returns the whole string of a buffer. Alias for `coorded_substr(view)`.
#     """
#     return coorded_substr(view)
# 
# Path: plugins/lib/fileconv/dumpers.py
# class DumperProto(object):
# class JSONDumper(DumperProto):
# class PlistDumper(DumperProto):
# class YAMLDumper(DumperProto):
#     def __init__(self, window, view, new_file_path, output=None, file_path=None, *args, **kwargs):
#     def validate_data(self, data, *args, **kwargs):
#     def _validate_data(self, data, funcs):
#         def check_recursive(obj):
#     def validate_params(self, params):
#     def dump(self, data, *args, **kwargs):
#     def write(self, data, *args, **kwargs):
#     def validate_data(self, data):
#     def write(self, data, params, *args, **kwargs):
#     def validate_data(self, data):
#     def write(self, data, params, *args, **kwargs):
#     def validate_data(self, data):
#     def write(self, data, params, *args, **kwargs):
# 
# Path: plugins/lib/fileconv/loaders.py
# def strip_js_comments(string):
#     def __init__(self, window, view, file_path=None, output=None, *args, **kwargs):
#     def _pre_init_(cls):
#     def get_ext_appendix(cls, file_name):
#     def get_new_file_ext(cls, view, file_path=None):
#     def new_file_ext(self):
#     def load_options(self, view):
#     def get_options(self):
#     def file_is_valid(cls, view, file_path=None):
#     def is_valid(self):
#     def load(self, *args, **kwargs):
#     def parse(self, *args, **kwargs):
#     def parse(self, *args, **kwargs):
#     def file_is_valid(cls, view, file_path=None):
#     def parse(self, *args, **kwargs):
#     def parse(self, *args, **kwargs):
# class LoaderProto(object):
# class JSONLoader(LoaderProto):
# class PlistLoader(LoaderProto):
# class YAMLLoader(LoaderProto):
#     DOCTYPE = "<!DOCTYPE plist"


# Path: plugins/file_conversion.py
import os
import time
import sublime
import sublime_plugin
from sublime_lib import OutputPanel
from pathlib import Path
from .lib.view_utils import get_text
from .lib.fileconv import dumpers, loaders

                                            file_path.stem + get_new_ext(target_format_)])
                            items.append(itm)

                    def on_select(index):
                        if index < 0 or index >= len(items):
                            # canceled or other magic
                            output.print("\n\nBuild canceled.")
                            return

                        target = items[index]
                        output.print(' %s\n' % target['name'])

                        kwargs.update(target['kwargs'])
                        kwargs.update(dict(source_format=source_format, _output=output))
                        self.run(**kwargs)

                    # Forward all params to the new command call
                    self.window.show_quick_panel(options, on_select)
                    return

                target_format = opts['target_format']
                # Validate the shit again, but this time print to output panel
                if source_format is not None and target_format == source_format:
                    return output.print("\nTarget and source file format are identical. (%s)"
                                        % target_format)

                if target_format not in dumpers.get:
                    return output.print("\nDumper for '%s' not supported/implemented."
                                        % target_format)


                output.print(' %s\n' % dumpers.get[target_format].name)