代码拉取完成,页面将自动刷新
同步操作将从 秋来冬风/U语言 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"errors"
"os"
"gitee.com/u-language/u-language/pkg/errcode"
"gitee.com/u-language/u-language/pkg/format"
"gitee.com/u-language/u-language/pkg/internal/utils"
"github.com/spf13/cobra"
)
var (
fmtCmd = &cobra.Command{
Use: "fmt",
Short: "格式化文件\n调用者确保被格式化的文件符合语法,如果被格式化的文件不符合语法,进行格式化会发生的行为未定义",
Long: "格式化文件\n调用者确保被格式化的文件符合语法,如果被格式化的文件不符合语法,进行格式化会发生的行为未定义",
Run: func(cmd *cobra.Command, args []string) {
defer Recover()
if len(args) < 1 {
cmd.PrintErrln("格式化文件为空,退出")
return
}
for _, v := range args {
info, err := os.Stat(v)
if err != nil {
cmd.PrintErrf("获取 %s 的信息失败,错误=%s", v, err.Error())
continue
}
var paths []string
if info.IsDir() { //如果是目录,获取目录下所有.u文件
paths, err = utils.FindU(v)
if err != nil {
cmd.PrintErrf("查找目录 %s 的.u文件出错,错误=%s", v, err.Error())
return
}
} else {
paths = append(paths, v)
}
for _, file := range paths {
err = format.FormatFile(file, errcode.DefaultErrCtx) //格式化单个文件
if err != nil {
switch {
case errors.Is(err, format.ErrorAfterLex):
cmd.PrintErrf("文件 %s 有错误\n", file)
return
case errors.Is(err, os.ErrNotExist):
cmd.PrintErrf("文件 %s 不存在\n", file)
return
case errors.Is(err, format.KeyNoMatchRightBrace):
cmd.PrintErrf("%s\n", err.Error())
return
default:
cmd.PrintErrf("有错误,错误=%v\n", err)
}
}
}
}
},
}
)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。