Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在注释中添加标识符的中文标注 #32

Closed
nobodxbodon opened this issue Sep 10, 2017 · 4 comments
Closed

在注释中添加标识符的中文标注 #32

nobodxbodon opened this issue Sep 10, 2017 · 4 comments

Comments

@nobodxbodon
Copy link
Member

nobodxbodon commented Sep 10, 2017

源自 @farteryhr : #2 (comment)

大概是像TypeScript对已有js库做“类型标注”一样,搞一种“标识符语言标注”,行内写法期望大概是
int this_name_is_long; /@zh_CN(此名长矣,CiMingChangYi)/
(多个自动补全引擎已经支持优先去匹配大写了,期望就是cmcy就能补全)
可能出现在一切会有标识符的地方,比如(纯粹理想地)
#define KW_IF /@zh_CN(若,Ruo_IF)/ if
不过后面这一坨的方便书写,可能仍然要编辑器插件配合……我目前能想到的就是这里了,如觉得有必要可随意整理搬运开新帖。

比如上面的this_name_is_long, 之后的引用就可以用'此名长矣'吗? 还是说通过IDE显示成'此名长矣'而代码中还是英文名?

@farteryhr
Copy link

显示此名长矣,代码中还是this_name_is_long。想象设置有一个代码“语言”,选中文,输入的时候输入cimingchangyi甚至cmcy,由自动补全提示此名长矣,选了它之后代码里实际是this_name_is_long,但是在这个变量作用域里出现这个名字,都展示此名长矣
甚至可以支持更多种语言,选哪种展示哪种【当然这是理想了,不过按这种思路大概就是实现这个理想的比较直观的做法吧

@nobodxbodon
Copy link
Member Author

听起来像是源代码的"i18n", 大方向感觉挺合理的. 好处是可以规避一些库对utf8代码的不友好问题, 而且容易扩展到其他自然语言. 另一方面, 开发的开销会比纯粹用中文命名大一些, 而且对开发工具的依赖比较大.

有些细节问题, 比如两个变量的作用域可能会有重叠, 如果中文名相同的话自动补全就可能有多个选项. 类似的, 标注命名的合法性(比如相同作用域下的重名问题)需要某种自动检查机制, 可能要在编译器或者开发环境里实现.

@nobodxbodon
Copy link
Member Author

CHTypeScript中采取了这个方式: 演示

@nobodxbodon
Copy link
Member Author

继续讨论请到CTS, 如觉得思路不同请重开此issue.

@nobodxbodon nobodxbodon mentioned this issue Jan 28, 2019
61 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants