@wulechuan/get-valid-indentation-string
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

获取有效的代码缩进字符串

中国人——特别是汉族人,理应坚持广泛、规范地使用汉语。凡非必要之情形不说外国话、不用外国字。此乃天经地义!然则每当必要,亦不排斥采用外国之语言。不妨 博世界之学问,养中国之精神

本人亦支持少数民族坚持采用自己民族的传统语言。仍须强调,凡中国人,皆应会用汉语、积极使用汉语,此乃中华各民族之大一统之必由。

Multilingual Editions of this Article

NPM 页

NPM 包名

@wulechuan/get-valid-indentation-string

作者

南昌吴乐川

源代码仓库

提供仓库服务之组织 仓库组织之国别 仓库地址
码云 中华人民共和国 https://gitee.com/nanchang-wulechuan/wulechuan-js-get-valid-indentation-string.git
阿里云之代码仓库 中华人民共和国 https://code.aliyun.com/wulechuan/wulechuan-js-get-valid-indentation-string.git
GitHub https://github.com/wulechuan/wulechuan-js-get-valid-indentation-string.git

版本断代提醒

  • 本工具自 v2.0.0 版始,源带码文件夹测试集文件夹源代码接口控制台消息文本 均已汉化。虽然旧的英语版接口得以保留,单从编程角度而言,版本并不“断代”,但因文件夹和消息文本仅采用汉语,故对于不识汉语之开发者而言,形同“版本断代”。

简介

功用

本工具可按需产生一个字符串,该字符串用作计算机源代码之单级缩进之空白。该字符串要么全是“空格”(' '),要么全是“制表符”('\t'),但二者不可混用。并且,多于一个制表符是允许的,但本程序会给出警告信息。因为,一般的,我们仅需采用单一制表符。

注意,本程序故意未提供所谓“默认值”。因此,本程序既不迎合喜欢采用“制表符”的程序员们,也不迎合喜欢采用“两个空格”的程序员们,也不迎合我本人喜欢的“四个空格”的风格。调用本程序时,如果对外界提供的“期望值”不信任,则必须明确给出一个所谓“后备值”,或者说“默认值”。

用法

安装

npm  i  @wulechuan/get-valid-indentation-string

具体示例

本工具仅提供唯一的函数作为所谓“主程序”,但故意给出汉语、英语两种名称。二者互为别名,效用完全对等。

其汉语名称为 求可靠的用于计算机源代码缩进的空白文本。该函数接受三个参数,详见下文《应用编程接口(所谓 API)》。

本项目代码库中自带的 ./测试集/index.js 是较充分的示范代码。摘抄如下(有所精简)。

const { 求可靠的用于计算机源代码缩进的空白文本 } = require('@wulechuan/get-valid-indentation-string')

试一把()      // 会抛出错误,因为“期望值”、“备用值”均不合格。
试一把(3)     // 采纳三个空格,即'   '。
试一把('3')   // 采纳三个空格,即'   '。
试一把(' 8 ') // 采纳八个空格,即'        '。



// 采纳两个空格,即'  '。在“繁冗汇报模式”还会在控制台打印“期望值”无效的细节说明。
试一把(-1,    '  ')



// 会抛出错误,因为“期望值”、“备用值”均不合格。
试一把('-2',  ' \n ')



// 采纳一个制表符,即'\t'。
试一把('\t',  '    ')



// 采纳四个空格,即'    '。因为空格与制表符混用是不允许的。并且,在“繁冗汇报模式”还会在控制台打印“期望值”无效的细节说明。
试一把(' \t', '    ')



// 采纳两个空格,即'  '。
试一把('',    '  ')



// 会抛出错误,因为“期望值(六十七个空格)”太长了,超出限度,同时“备用值”又未给出。
试一把(' '.repeat(67))



// 会抛出错误,因为不允许采用布尔值,同时“备用值”又未给出。
试一把(true)



// 下方代码的期望值是有效的,会被采纳,即采纳两个制表符('\t\t')。
// 但在被采纳的同时,控制台还会给出一则警告信息,提及制表符多于一个。
// 诸君不妨思考一下,果真有必要采用超过一个制表符来当做“单级别”缩进吗?
试一把('\t\t')



// 会抛出错误,因为不允许空格与制表符混用,同时“备用值”又未给出。
试一把(' \t')



function 试一把 (期望采用的缩进空白之配置, 保险的备用配置) {
    try {

        // 请留意下方的函数调用语句。
        求可靠的用于计算机源代码缩进的空白文本(
            期望采用的缩进空白之配置,
            保险的备用配置,
            true
        )

    } catch(错误之记载) {
        console.log(错误之记载.message)
    }
}

应用编程接口(所谓 API)

主函数

本工具仅提供唯一的函数作为对外接口,但故意给出汉语、英语两种名称。二者互为别名,效用完全对等。

主函数之接口全貌(外国话所谓 Signature)
function 求可靠的用于计算机源代码缩进的空白文本 (
    期望采用的缩进空白配置:  any,
    保险的备用缩进空白配置?: string | number,
    应在控制台记录运行细节?: boolean
): string

function getValidIndentationString (
    providedIndentation: any,
    fallbackValue?:      string | number,
    shouldLogVerbosely?: boolean
): string
主函数之入口参数
期望采用的缩进空白配置providedIndentation

该值不能省略。可以取任何值,但仅当值有效时会被采纳,无效值不被采纳。当该值无效时,主函数转而尝试采用 保险的备用缩进空白配置fallbackValue) 的值。

所谓“有效”的值,参见下文《主函数中的两个主要参数取怎样的值算是有效值?》一节。

保险的备用缩进空白配置fallbackValue

该值可以省略。如果 期望采用的缩进空白配置 一值无效,主函数才会考察本值(即指 保险的备用缩进空白配置)。虽然本值可传入任何值,但仅当值有效时会被采纳。如果本值被判无效,则主函数抛出错误。

所谓“有效”的值,参见下文《主函数中的两个主要参数取怎样的值算是有效值?》一节。

应在控制台记录运行细节shouldLogVerbosely

该值可以省略。其取值可以是任意值,但会被视作布尔值。当该值为“真性(truthy)”时:

  • 如果主函数最终采纳了一个有效值,则会在控制台打印出最终采纳的值,供人类审阅。
  • 如果给出的原始值有任何错误,那么,不论本程序最终是否(借助“后备值”)得到一个有效值,均会在控制台打印出与原始值相关的错误信息。

注意

若传入的 期望采用的缩进空白配置保险的备用缩进空白配置 均无效,则本程序抛出错误。

主函数中的两个主要参数取怎样的值算是有效值?

所谓有效的值,应符合以下规则之任一:

  • 四舍五入后大于 0 且小于等于 50 的数字值。视作用于代码缩进一级所采用的空格之个数。

  • 包含上述数字的字符串值,例如 '4'" 8 "。含义同上。

  • 一个包含空格的字符串,其中的空格数量不少于 1 且不多于 50(可以等于 1,可以等于 50)。

  • 一个包含制表符的字符串,其中的制表符数量不少于 1 且不多于 16(可以等于 1,可以等于 16)。但仅推荐采用单一制表符。一般情况我认为根本没必要使用两个或更多制表符。

以下枚举(但不穷举)一些有效值:

  • 4
  • '4'
  • ' 4 '
  • ' '
  • " "
  • ' '
  • '\t'
  • "\t"
  • '\t\t'
主函数之返回值

该函数总是返回一个字符串值。如果输入不合规,该函数并不作返回,而是故意抛出错误。

Package Sidebar

Install

npm i @wulechuan/get-valid-indentation-string

Weekly Downloads

2

Version

2.0.3

License

WTFPL

Unpacked Size

21.4 kB

Total Files

4

Last publish

Collaborators

  • wulechuan