Ejemplo n.º 1
0
    def load_colourschemes(self):
        colourschemes = {}

        # global colourschemes
        global_dir = GLOBAL_COLOURSCHEMES_DIR
        if os.path.exists(global_dir) and os.path.isdir(global_dir):
            global_colourschemes = load_colourschemes_from_dir(global_dir)
            colourschemes.update(global_colourschemes)

        # user colourschemes
        settings_dir = self.settings_dir
        user_dir = os.path.join(settings_dir, 'colourschemes')
        if os.path.exists(user_dir) and os.path.isdir(user_dir):
            user_colourschemes = load_colourschemes_from_dir(user_dir)
            # merge them in so that per-user colourschemes override
            # system-wide ones
            colourschemes.update(user_colourschemes)

        # fake default one just in case
        if not colourschemes:
            colourschemes['none.colourscheme'] = Colourscheme('None')

        # maintain alphabetical order
        scheme_order = colourschemes.keys()
        scheme_order.sort()
        scheme_list = [colourschemes[k] for k in scheme_order]

        return scheme_list
Ejemplo n.º 2
0
    def load_colourschemes_from_dir(self):
        filenames = []
        dirpath = tempfile.mkdtemp()
        num = 5
        content = '\n'.join(self.lines)

        try:
            # just setup some files
            for x in xrange(num):
                #fle = tempfile.NamedTemporaryFile(suffix='.colourscheme', dir=dirpath, mode='w', delete=False)
                fid, filename = tempfile.mkstemp(suffix='.colourscheme', dir=dirpath, text=True)
                filenames.append(filename)
                fle = open(filename, 'w')
                fle.write(content)
                fle.close()

            colourschemes = load_colourschemes_from_dir(dirpath)

            # checking if the colourschemes loaded is a bit messy:

            # make sure we have as many as wrote
            assert len(colourschemes) == num

            for c in colourschemes:
                # just make sure it at least has a name
                name = c.name
                colours = c.get_colours_for_mode('python')

                # check that the colours loaded
                assert colours['keyword']['hex'] == '#223344'
        finally:
            for filename in filenames:
                os.unlink(filename)
            os.rmdir(dirpath)