TransformCommandName.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:st-user-package 作者: math2001 项目源码 文件源码
def run(self, edit):

        def md(t):
            sublime.message_dialog(str(t))

        for selection in self.view.sel():
            # on recupere le texte de la selection
            if selection.empty():
                s = sublime.get_clipboard()
            else:
                s = self.view.substr(selection)

            if '_' not in s:
                # ca veut dire qu'il n'y a pas _, donc on doit le transformer pour qu'il soit valable dans le fichier de raccourci
                # ex: il etait : UnNomDePlugin
                #     il devient : un_nom_de_plugin

                # on rajoute un _ devant chaque majuscule
                underscore_case = re.sub(r'([A-Z])', r'_\1', s)

                # on le met tout en minuscule
                underscore_case = underscore_case.lower()

                # on supprime le premier _ (_nom_de_votre_command_avant_ca)
                if underscore_case[0] == '_':
                    underscore_case = underscore_case.replace('_', '', 1)

                # on split le texte tout les _
                underscore_case = underscore_case.split('_')

                # pour pouvoir retirer le "command" a la fin
                if (underscore_case[-1] == 'command'):
                    del(underscore_case[-1]) # l'index -1 recupere le dernier element de la liste

                # on le re assemble avec des _
                underscore_case = '_'.join(underscore_case)

                new_text = underscore_case


            else:
                # il y a des underscore, donc on doit le transformer pour qu'il soit un nom de plugin valable

                # on split le texte tout les _
                texte = s.split('_')

                camelCase = ''
                for mot in texte:
                    camelCase += mot.capitalize()

                camelCase += 'Command'

                new_text = camelCase

            # on remplace la selection par notre texte modifie !
            if selection.empty():
                self.view.insert(edit, selection.begin(), new_text)
            else:
                self.view.replace(edit, selection, new_text)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号