Assemblyscript: 考虑.ts以外的文件扩展名

创建于 2019-12-12  ·  46评论  ·  资料来源: AssemblyScript/assemblyscript

你好

我是Zwitterion的作者,并且当前正在尝试添加对AssemblyScript的支持。 Zwitterion的目标是允许将任何语言进行编译(转换为JS)或编译(转换为Wasm)以进行前端浏览器开发。 根据语言的文件扩展名检测语言。 这非常简单,并且允许Zwitterion区分JavaScript(.js),TypeScript(.ts),Rust(.rs),Wasm(.wasm)等。

AssemblyScript没有自己的文件扩展名,这使这相当困难。 现在,除了该用例之外,我认为还有许多其他原因使为什么具有AssemblyScript单独的文件扩展名有意义。 想到静态分析工具和开发人员的知识。 ES模块规范允许任意文件扩展名,因此这不应该成为问题。 尽管在这些问题上存在争议,但我个人认为很明显,模块路径中应允许任何扩展。 Deno.js已经解决了这些问题,我相信创建一个VS Code插件以允许.ts扩展(它只会停止类型错误)。 这种情况最近可能已改变,但他们也一直在考虑这一点。

对不起,我无聊。 我希望为AssemblyScript考虑一个单独的文件扩展名。 谢谢!

enhancement help wanted tooling

最有用的评论

是的,该标志的落差为0.10.0。 例如,用法是--extension .as ,实际上是用.ts替换任何.as 。 但是请注意,asc当前一次只能理解一种扩展,很可能导致使用其他扩展库的外部库出现问题。 而是一种实验性功能来进行尝试。

所有46条评论

这对vscode中的语言服务器也很有用!

这是我们将来可能会考虑的事情,但是在当前状态下(即没有我们自己的语言服务器),重用.ts扩展名似乎是我们能够尽最大努力提供良好开发经验的最佳方式。

但是,有两个指标可用于确定工具的AS代码,例如

  • 如果存在tsconfig.json扩展path/to/std/assembly.json
  • 如果package.json具有ascMain ,则指向具有其他AS代码的目录内的AS入口文件
  • 同样,如果package.json具有asbuild脚本,则其下标指向AS入口文件
  • 如果没有配置,AS代码通常位于assembly/

这是我们将来可能会考虑的事情,但是在当前状态下(即没有我们自己的语言服务器),重用.ts扩展名似乎是我们能够尽最大努力提供良好开发经验的最佳方式。

我明白。 但是,指示VS Code将.as文件视为TypeScript文件不是很简单吗? 我相信是。 似乎这是在VS Code或类似的编辑器中获得TypeScript静态分析的好处的一种更简单的方法,并且仍然具有单独扩展的好处。

上次我检查tsc对支持的文件扩展名进行了硬编码,并且更改它的唯一方法是维护一个fork。 但是,那是大约在asc原型的时候。

我认为这取决于supported file extensions 。 TypeScript将编译带有任何文件扩展名的导入路径。 类型检查器是唯一存在扩展问题的东西,我相信使用简单的VS Code扩展并不是很难解决。 实际上,我相信Deno已经使用.ts扩展名做到了这一点: https ://marketplace.visualstudio.com/items?itemName=justjavac.vscode-deno

另外,我现在打开了VS Code,并指示它将.as文件视为TypeScript。

我只是在这里集成了AssemblyScript: https :

有用! 但是,就像我说的那样,这取决于AssemblyScript具有自己的文件扩展名。 现在,我选择了.as 。 而且我已经对VS Code进行了更多的实验,我可以指示它使用.as作为TypeScript文件的指示符,它将保存该配置。 我看到的唯一主要问题是指示TypeScript静态分析器允许使用.as扩展名,但是就像我上面链接到的Deno扩展名一样,我认为这应该不太困难。

这里还有其他问题吗?

似乎ActionScript问题是.as的交易中断。 也许.asc

我个人不喜欢扩展名与编译器相同的想法。 我希望我们可以以某种方式合并Wasm,但不能使用.asm ,这是我唯一想到的一个。

还有@dcodeIO ,RocketScript将是.rs ...但是,如果我们现在要更改名称,那就是时候了。 我对当前名称的抱怨是它的音节太多。 与空间主题保持一致,我们可以执行Ad AstraArugula (在英国称为“火箭”)。

.rs由Rust保留=)

只是想提出关于我的上下文也存在此问题: https :

另外,我认为Github语言将是一个很好的参考。 似乎ActionScript已经与AngelScript发生冲突,因此,也许我们最好的选择是打开Github的一个问题,看看是否可以将AssemblyScript作为.as添加到列表中,因为这似乎很流行选项?

与之类似,我们询问AssemblyScript是否为: .as.assemblyscript ? 🤔

另外,cc @jayphelps,因为他们在这里有一些非常好的见识😄

这是一个小仓库,显示GitHub将由.as 。 也可以分叉来查看需要做什么才能使所有功能在TS和AS端均正常工作:

https://github.com/dcodeIO/asext

是的,RocketScript / .rs实际上是我在试图变得有趣:)

另外,这是用于在Github语言检测器中添加新语言的文档: https :

但是,进行了一些研究,并且@dcodeIO似乎是正确的,Typescript除了其明确支持的扩展以外,不支持任何扩展: https :

我开始同意也许.as.ts在这里最有意义? 🤔

导入中的TypeScript也不支持@ torch2424 .as.ts 。 就像我之前提到的一些评论一样,这取决于您所支持的含义。 似乎唯一支持AssemblyScript的需求是对Visual Studio Code或Atom等编辑器中的静态分析的支持。 这个对吗? 请参阅Deno在TypeScript导入中允许.ts扩展的解决方案: https :

到底TypeScript需要什么样的支持? 编译器已经可以处理任何扩展,类型检查器是唯一存在扩展问题的东西,我想可以很容易地通过插件解决

看起来像修复.ts扩展错误的实际逻辑是在这里: https :

总之,AssemblyScript最终将需要其自己的语言服务器,对吗? 看起来像是用于编辑器的插件可能是使用TypeScript类型检查器修复这些扩展问题的自然方法。 我认为我们不必限制自己以.ts结尾

导入中的TypeScript也不支持

哦,我的坏! 我很想念我的道歉!

到底TypeScript需要什么样的支持? 编译器已经可以处理任何扩展,类型检查器是唯一存在扩展问题的东西,我想可以很容易地通过插件解决

糟糕,那时我可能是错的,我没有尝试过,但是发现了一个开放的问题,人们无法使用其他扩展名😂

总之,AssemblyScript最终将需要其自己的语言服务器,对吗? 看起来像是用于编辑器的插件可能是使用TypeScript类型检查器修复这些扩展问题的自然方法。 我认为我们不必局限于以.ts结尾的内容

是的,我认为这是正确的, @ jtenner提到了这一点,并且我认为他们对此有更多的了解。

但是,如果我们可以在tsconfig中做打字稿文件使用自定义扩展名,那么我认为如果我们使用.as be会很好。

我认为现在是时候与TypeScript团队共同探讨新问题了,问他们是否有办法替代他们的语言服务器? 当然,必须使用.ts扩展名有更好的方法。

这是一个小仓库,显示GitHub将由.as 。 也可以分叉来查看需要做什么才能使所有功能在TS和AS端均正常工作:

https://github.com/dcodeIO/asext

是的,RocketScript / .rs实际上是我在试图变得有趣:)

这是根据Github编写的AngelScript:D

@dcodeIO ,我无法编译您的

我正在以某种方式编译此AngelScript:D

cd wasm && mv main.as f.ts && asc f.ts -b main.wasm -O3 --runtime none; mv f.ts main.as

.as很好,但是您说...与ActionScript冲突? 伙计,我早就用过它。 Macromedia已死。 Adobe Flash已死,Flex已死。 因此,ActionScript也已失效。 为.as名称+1。 有投票吗?

顺便说一句,这很酷:js-> ts-> as

(此外,AssemblyScript是TypeScript的超集而不是子集是很酷的)

我同意,除了与其他语言的冲突外, .as似乎是最好,最自然,最舒适的选择。 我认为,如果有可能,如果我们能够以某种方式使.as工作,那么我们应该这样做。 如果其他语言死了或死了,那么AssemblyScript应该尝试扩大扩展似乎是合理的。

更改为.as确实很困难。 我们可以从GitHub(github / linguist)获得批准。 语言应该很成熟。 还需要更新各种编辑器和IDE。

@MaxGraey是的,是的。 在文档,示例等中的任何地方-应该在每个地方都提到.as ,这可能是最难的部分。

修复VSCode中的突出显示非常容易:

// settings.json
{
  "files.associations": {
    "*.as": "typescript"
  }
}

不过,理想情况下,不应由每个人的设置来管理它。 可能应该是一个单独的插件,首次打开.as文件时,系统会自动建议该插件-与手动配置管理相比,它更加人性化。 甚至将PR放入现有的TS插件中,以将.as作为打字稿...在语法上是否等效?

你好!

我们在https://github.com/AssemblyScript/meta/issues/19中讨论了此问题

我们从中得出的主要可行的事项是:

我们需要该语言在大多数Major IDE以及Github中获得支持所需要做的事情的清单。

由于AssemblyScript一直支持.ts扩展名,因此这意味着我们需要构建所有基础结构来支持我们自己的扩展名。 例如,如何获得语言学家Github存储库,如何获得Visual Studio代码支持。

一旦有了这些,就可以将其分解为问题。 然后我们可以决定一个最终名称,人们可以在其中使用这些名称,然后开始实施。

在每周会议上还提议了其他名称(我最喜欢的是.asms (Asm脚本)),是的! 😄

PS同时,如果可以确定要更改扩展名,那么现在最好这样做,而不要以后更改。 原因是随着越来越多的人采用AS,每个人都很难更改扩展名。

.at (AssemblyScript的第一个和最后一个字母)怎么样?

.as (与GitHub上的其他2种语言冲突)
.at
.ast
.asc (与GitHub上的其他3种语言冲突)
.asmt
.asmc
.asms
.asmst
.asmscript
.assemblyscript

.as是我的第一选择,不考虑冲突的语言,然后是.at.asms 。 我喜欢两个字母扩展名的想法,因为它与最流行的基于JS的语言( .js.ts的遗产一起出现。 如果我们必须去两个以上的字母,我真的很喜欢.asms.ast可能会与抽象语法树混淆,而其他语法树却比我想的要怪。

看起来.at是一个非常有用的扩展,没有我能找到的语言,而且几乎没有文件格式,也许是来自Google的一些快速搜索。

这是生成的大量启发灵感的清单:

展开以查看完整的扩展名列表

.ac
.ae
.ai
.al
.am
.ap
.ar
.as
.at
.ay
.abc
.abi
.abl
.abp
.abr
.abs
.abt
.aby
.aci
.acp
.acr
.act
.aeb
.aec
.aei
.ael
.aem
.aep
.aer
.aes
.aet
.aey
.aip
.ait
.alc
.ali
.alp
.alr
.als
.alt
.aly
.amb
.amc
.ami
.aml
.amp
.amr
.ams
.amt
.amy
.apt
.ari
.arp
.art
.asb
.asc
.ase
.asi
.asl
.asm
.asp
.asr
.ass
.ast
.asy
.ayc
.ayi
.ayp
.ayr
.ays
.ayt
.abci
.abcp
.abcr
.abct
.abip
.abit
.ablc
.abli
.ablp
.ablr
.abls
.ablt
.ably
.abpt
.abri
.abrp
.abrt
.absc
.absi
.absp
.absr
.abst
.abyc
.abyi
.abyp
.abyr
.abys
.abyt
.acip
.acit
.acpt
.acri
.acrp
.acrt
.aebc
.aebi
.aebl
.aebp
.aebr
.aebs
.aebt
.aeby
.aeci
.aecp
.aecr
.aect
.aeip
.aeit
.aelc
.aeli
.aelp
.aelr
.aels
.aelt
.aely
.aemb
.aemc
.aemi
.aeml
.aemp
.aemr
.aems
.aemt
.aemy
.aept
.aeri
.aerp
.aert
.aesc
.aesi
.aesp
.aesr
.aest
.aeyc
.aeyi
.aeyp
.aeyr
.aeys
.aeyt
.aipt
.alci
.alcp
.alcr
.alct
.alip
.alit
.alpt
.alri
.alrp
.alrt
.alsc
.alsi
.alsp
.alsr
.alst
.alyc
.alyi
.alyp
.alyr
.alys
.alyt
.ambc
.ambi
.ambl
.ambp
.ambr
.ambs
.ambt
.amby
.amci
.amcp
.amcr
.amct
.amip
.amit
.amlc
.amli
.amlp
.amlr
.amls
.amlt
.amly
.ampt
.amri
.amrp
.amrt
.amsc
.amsi
.amsp
.amsr
.amst
.amyc
.amyi
.amyp
.amyr
.amys
.amyt
.arip
.arit
.arpt
.asbc
.asbi
.asbl
.asbp
.asbr
.asbs
.asbt
.asby
.asci
.ascp
.ascr
.asct
.aseb
.asec
.asei
.asel
.asem
.asep
.aser
.ases
.aset
.asey
.asip
.asit
.aslc
.asli
.aslp
.aslr
.asls
.aslt
.asly
.asmb
.asmc
.asmi
.asml
.asmp
.asmr
.asms
.asmt
.asmy
.aspt
.asri
.asrp
.asrt
.assb
.assc
.asse
.assi
.assl
.assm
.assp
.assr
.asss
.asst
.assy
.asyc
.asyi
.asyp
.asyr
.asys
.asyt
.ayci
.aycp
.aycr
.ayct
.ayip
.ayit
.aypt
.ayri
.ayrp
.ayrt
.aysc
.aysi
.aysp
.aysr
.ayst

Fwiw,我赞成.as ,主要是出于美学考虑( .js.ts ,_A_ssembly_S_cript)。 不过,在进行切换之前,希望有一个语言服务器来正确使用它。

.as立即让我想到了ActionScript,并且已经有了VSCode扩展。

我希望使用.asms.ascr

到目前为止,每个人都提到.a*用于扩展,但是.ts*是开放的(例如.tsas.tsa ),因为它是从TS分支出来的?

还有.was.wasm之前的步骤),但是可能已经存在

还有.ax或不是直接缩写的东西。

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 感谢您的贡献。

下一步? 只是不想让它过时

或者只是将Assembly Script重命名为更具描述性的WASM脚本,并使用“ wass”来补充WASM,WAST,WASI,WAT等。

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 感谢您的贡献。

不陈旧。 如何做出决定?

@lastmjs在上一次的Saul Cabrera会议中提到,您将开始在语言服务器上工作:smile:

一旦有了这些,这将极大地帮助解决这个问题,因为我们将拥有可以识别Assemblyscript语法的功能,并允许我们开始使用其他工具(例如:smile)编写该语言的插件和东西。

这样,我们就不必依靠打字稿工具来为我们完成这项工作,并且我们可以从.ts :smile开始更改文件扩展名。

我很高兴这个问题受到关注。 我的2美分: .as是AssemblyScript的最直观的扩展,与.js.ts相似。 我也很高兴听到有关在lang服务器上工作的消息,这对开发人员的经验将有很大帮助。 伟大的工作。

.as +1。
无需担心与较旧语言的冲突。 他们最终将消失。
棒极了,顺便说一句。

我现在在as扩展营中。 这可能是最随意的决定,但应该做出。

@dcodeIO我们使用vscode扩展名突出显示了正确的语法,并在可能的情况下尽快做出决定。

同时,我将花费大部分时间使用.asc文件扩展名来开发期待已久且令人垂涎的AssemblyScript扩展名。 多亏了compileString()方法,即使使用哪个扩展名也没关系,尽管它应该由编译器本身进行标准化,并随编译器的发行而来。

也许应该在AssemblyScript/meta库中打开RFC。

CC @ torch2424 @willemneal@MaxGraey

@jtenner Dope:smile:是的,可以随时打开RFC并将其链接到此处! :微笑::多田:

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 感谢您的贡献。

不陈旧! 这个决定怎么样?

我们仍在等待我完成asconfig,我相信--extension标志随附于0.10。 @dcodeIO正确吗?

是的,该标志的落差为0.10.0。 例如,用法是--extension .as ,实际上是用.ts替换任何.as 。 但是请注意,asc当前一次只能理解一种扩展,很可能导致使用其他扩展库的外部库出现问题。 而是一种实验性功能来进行尝试。

@dcodeIO哇! 我没有落地的线索! 伟大的工作! :微笑::+1:

对于一个文件中的简单项目,谢谢! 并且语法现在突出显示。
但是对于像rollup-plugin-assemblyscript这样的东西却不是。

编辑:我想出了如何解决这个插件,它已经过时的版本。 公关: https :

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

vladimir-tikhonov picture vladimir-tikhonov  ·  4评论

MaxGraey picture MaxGraey  ·  3评论

kungfooman picture kungfooman  ·  5评论

MaxGraey picture MaxGraey  ·  4评论

jerrywdlee picture jerrywdlee  ·  4评论