NumberChange:用于把数字替换为状态机独热码定义的小插件

目标

写代码的时候,一个模块一个状态机,定义的时候有点多。就弄了这个,在sublime编辑器里把一个数字替换为状态机独热码的定义。

示例

敲一个数字,再按快捷键替换。
在这里插入图片描述
在这里插入图片描述

代码

import os, sublime, sublime_plugin
# 用于将数字替换为状态机独热码定义
class NumberChangeCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        view = self.view
        position = view.sel()[0]
        changestr = view.substr(position)
        newstr = ''
        try:
            if isinstance(eval(changestr),int):
                k = eval(changestr)
        except NameError:
            pass
        else:
            for i in range(k):
                tempstr = i*'0'+'1'+(k-i-1)*'0'
                tempstr_change = ''
                for i in range(len(tempstr)):
                    if i%4==0 and i!=0:
                        tempstr_change += '_'+tempstr[i]
                    else:
                        tempstr_change += tempstr[i]
                newstr += 'localparam your_state_name = '+changestr+"'b"+tempstr_change[::-1]+';\n'
            newstr += '\nreg ['+str(k-1)+':0] c_state;\n'
            newstr += 'reg ['+str(k-1)+':0] n_state;\n'
            view.replace(edit,position,newstr)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值