Sublime自动布局插件AutoScaleView

Sublime自动布局插件

功能说明

在sublime使用四分布局的时候可以自动扩大选中的窗口

效果

在这里插入图片描述

代码实现

import sublime, sublime_plugin
import os.path

# global last_focus_group
last_focus_group = -1
is_auto_scale_view = True

class AutoScaleViewCommand(sublime_plugin.EventListener):
	def on_activated(self, view):
		global is_auto_scale_view
		#print(is_auto_scale_view)
		if not is_auto_scale_view:
			return
		# global last_focus_group
		win = sublime.active_window()
		curActiveGroup = win.active_group()
		# if (len(win.views_in_group(curActiveGroup)) <= 0 or last_focus_group != curActiveGroup) and last_focus_group != -1:
		if len(win.views_in_group(curActiveGroup)) <= 0:
			# last_focus_group = curActiveGroup
			return
		last_focus_group = curActiveGroup
		layouts = win.get_layout()
		# print(layouts,"len:",len(layouts['cells']))
		if len(layouts['cells']) == 2 and len(layouts['rows']) == 3:
			needBigScale = 0.35
			if curActiveGroup == 0 :
				layouts['rows'][1] = 0.5 + needBigScale
			else:
				layouts['rows'][1] = 0.5 - needBigScale
			win.set_layout(layouts)
		elif len(layouts['cells']) == 4 and len(layouts['rows']) == 3:
			needBigScaleR = 0.35
			needBigScaleC = 0.25
			if curActiveGroup == 0 :
				layouts['rows'][1] = 0.5 + needBigScaleR
				layouts['cols'][1] = 0.5 + needBigScaleC
			elif curActiveGroup == 1 :
				layouts['rows'][1] = 0.5 + needBigScaleR
				layouts['cols'][1] = 0.5 - needBigScaleC
			elif curActiveGroup == 2 :
				layouts['rows'][1] = 0.5 - needBigScaleR
				layouts['cols'][1] = 0.5 + needBigScaleC
			elif curActiveGroup == 3 :
				layouts['rows'][1] = 0.5 - needBigScaleR
				layouts['cols'][1] = 0.5 - needBigScaleC
			win.set_layout(layouts)
		elif len(layouts['cells']) == 2 and len(layouts['rows']) == 2:
			needBigScaleR = 0.5
			needBigScaleC = 0.25
			if curActiveGroup == 0 :
				layouts['cols'][1] = 0.5 + needBigScaleC
				layouts['rows'][1] = 0.5 + needBigScaleR
			elif curActiveGroup == 1 :
				layouts['cols'][1] = 0.5 - needBigScaleC
				layouts['rows'][1] = 0.5 + needBigScaleR
			win.set_layout(layouts)

class TriggerAutoScaleViewCommand(sublime_plugin.TextCommand):
	def run(self, edit):
		global is_auto_scale_view
		is_auto_scale_view = not is_auto_scale_view

吐槽

开发的时候经常要打开多个模块的文件,强迫症患者不喜欢不同模块的文件在一个窗口打开,所以就有了这段代码。十分方便,感觉生活都快乐了许多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值