开始

紧接着的是配置文件,先前使用的是CustomFs.ahk的前身,实在简陋。

现在我们已经实现的完善的配置文件语法,那么使用它吧!

先看看之前的配置文件吧:

# **除末尾外不要有空行**
groupPath:A_ScriptDir\group
group:
-default
-history
-test
-temp
hisPath:A_ScriptDir\group\history
defaultSave:A_ScriptDir\group\default
noBgc:0
useRandomColor:0
guiBgc:62B0A7
guiTRP:100
showMask:0
maskBgc:000000
maskTRP:100
staticBG:1
pasteIST:0
tip:0
autoSave:1
historyLimit:100
trayClick:1
clipHK:!`
cancelHK:Esc
clearAllHK:!Esc
lastHK:!1

对比现在的:

# 配置文件
group : @./my.txt    # 声明一个数组,键名是names,子项是目录名

groupRoot : $A_ScriptDir$\group  # 分组根目录

hisPath     : $groupRoot$\history  # 自动保存目录
defaultSave : $groupRoot$\default  # 默认保存目录

# colors
noBgc          : 0   # 透明背景
useRandomColor : 0   # 随机背景色(不推荐)
guiBgc         : 62B0A7
guiTRP         : 100
maskBgc        : 000000
maskTRP        : 100

# settings
showMask     : 0
staticBG     : 1   # 显示静态背景
pasteIST     : 0   # 立即贴图(不能调整)
tip          : 0
autoSave     : 1   # 自动保存
historyLimit : 100
trayClick    : 1

# hotkeys,只要是Hotkey()可以识别的都行
clipHK     : !``
lastHK     : !1
cancelHK   : Esc
clearAllHK : !Esc

实现

迁移起来十分简单,因为我们需要修改此文件,所以引入的是EX版本。

cfs := CustomFSEx.Of('./config.txt')

现在可以使用了!


当然不可能这么简单,我们还需要在此基础上封装一下,因为CustomFs的api需要手动写键名,容易出错。

像下面,存入到变量中就好很多。
同时,做一些额外工作,如新建文件夹、修复不合理的配置项。

Meta := {
  name: 'MeowPaste'
}

class Configuration {

  __New(cfs) {
    this.noBgc := cfs.Get('noBgc', false)
    this.guiBgc := cfs.Get('guiBgc', 'abcabc')
    this.useRandomBgc := cfs.Get('useRandomColor', false)
    this.guiTransparent := cfs.Get('guiTRP', 150)
    this.maskBgc := cfs.Get('maskBgc', '000000')
    this.maskInitTransparent := cfs.Get('maskTRP', 100)
    
    this.showMask := cfs.Get('showMask', false)
    this.showStaticBg := cfs.Get('staticBG', true)
    this.pasteInstantly := cfs.Get('pasteIST', false)
    this.withTip := cfs.Get('tip', false)
    this.clickCount := cfs.Get('trayClick', 1)

    this.clipHK := cfs.Get('clipHK', '!``')
    this.cancelHK := cfs.Get('cancelHK', 'Esc')
    this.clearAllHK := cfs.Get('clearAllHK', '!Esc')
    this.lastHK := cfs.Get('lastHK', '!1')

    this.autoSave := cfs.Get('autoSave', true)
    this.historyLimit := cfs.Get('historyLimit', 100)
    this.guiOption := '+AlwaysOnTop +ToolWindow -Caption +Border'
    this.groupRoot := cfs.Get('groupRoot', Path.Join(A_ScriptDir, 'group'))
    this.historyPath := cfs.Get('hisPath', Path.Join(this.groupRoot, 'history'))
    this.defaultSavePath := cfs.Get('defaultSave', Path.Join(this.groupRoot, 'group\default'))
    this.groupsList := cfs.Get('group').names

    this._Fix()
    this._EnsureDirectoryExists()
  }

  _Fix() {
    if !this.pasteInstantly && this.noBgc
      this.showMask := true
    if this.historyLimit < 1
      this.autoSave := false
  }

  _EnsureDirectoryExists() {
    for v in := Array(_r := this.groupRoot, this.hisPath, this.defaultSavePath) {
      if !DirExist(v) {
        DirCreate(v)
        logger.Warn('创建文件夹 ' v)
      }
    }
    for v in this.groupsList {
      if !DirExist(_r '\' v) {
        DirCreate(_r '\' v)
        logger.Warn('创建分组文件夹 ' v)
      }
    }
  }
}
posted on 2024-08-11 13:45  落寞的雪  阅读(18)  评论(0编辑  收藏  举报