【问题标题】:Visual Studio Code + LuaVisual Studio 代码 + Lua
【发布时间】:2017-02-19 03:49:17
【问题描述】:

据我所知,目前 Visual Studio Code for Lua 仅支持语法着色,我们可以进行格式化和一些带有扩展的 sn-ps。 我需要知道的是是否有或正在计划某种 Intellisense。

【问题讨论】:

  • 您使用 Visual Studio 代码的任何特殊原因?
  • 是的,因为它是同类产品中最好的。你有什么替代方案可以推荐给我吗?
  • 显然没有使用 lua。我建议您查看 ZeroBrane Studio。它具有自动完成、语法高亮和着色、调试功能,非常轻量级,并且完全开源。如果有人在 VS Code 中为 lua 做了扩展,那就太好了。
  • 我需要一些可扩展的东西来为特定的修改上下文添加支持(自动完成/智能感知)。类似 TypeScript 描述符的东西,但由于在 LUA 中不支持这样的东西,我需要将它作为编辑器的扩展来实现。
  • 什么是特定的改装上下文?如果你需要帮助,不要说谜语。

标签: lua scripting intellisense visual-studio-code


【解决方案1】:

三年后,我们有了vscode-lua。据我所知,它具有某种 Intellisense 并且可能配置为查找所需库的路径、版本规范(5.1、5.2、5.3)、缩进、线宽和其他格式相关的东西...试试看!

【讨论】:

    【解决方案2】:

    用于自定义语法突出显示和代码完成。
    在 VSCode 中,安装扩展:Lua by sumneko
    我不知道如何正确使用 emmyLua,所以我的例子并不完美,但它很容易设置,只需最少的努力。我的用例是集成在 C# 中的 NLua。只需要通过一些代码完成来编辑文件。

    创建文件:Demo.lua

    -- set the class a dummy name, since creator is the same name
    -- eg. class name Point, creator name also Point will work
    --     but will result in messy suggestions
    ---@class cPoint
    ---@field X number
    ---@field Y number
    
    -- creator
    ---@type fun( x:number, y:number ) : cPoint
    Point = {};
    
    ---@class Shapes
    ---@field Origin cPoint
    local Shapes = nil;
    
    ---@type fun( x:number, y:number )
    function Shapes:Move( x, y ) end
    
    ---@class cCircle : Shapes
    ---@field Radius number
    local cCircle = {};           -- define to be able to ...
    
    ---@type fun( angle:number )
    function cCircle:Roll( angle ) end  --    ... add methods
    
    ---@type fun( x:number, y:number, r:number ) : cCircle
    Circle = {};
    
    ---@class cRectangle:Shapes
    ---@field Width number
    ---@field Height number
    local cRectangle = {};
    
    ---@type fun( origin:cPoint, w:number, h:number ) : cRectangle
    Rectangle = nil;
    
    -- no method overload, so just force it
    ---@type fun( x:number, y:number, w:number, h:number ) : cRectangle
    Rectangle = nil;
    

    创建另一个文件:test.lua

    c = Circle( 10, 10, 10 );
    c.Origin.X = 10;
    c.Move( 10, 10 );
    c.Roll( 10 );
    
    r = Rectangle( Point( 0, 0 ), 10, 10 );
    r = Rectangle( 10, 10, 10, 10 );
    
    -- DETECTED ERRORS
    c.origin.X = 10;
    s = Shapes();
    r.Roll( 10 );
    
    -- NOT DETECTED
    r = Rectangle( "hello" );
    c = Circle(10,10);
    c = Circle();
    c.Roll();
    Rectangle()
    

    【讨论】:

      【解决方案3】:

      如果您想知道某个软件是否具有某些功能或者是否已计划,StackOverflow 是错误的地方。

      去阅读软件开发者提供的信息。如果您在那里没有找到并回答,请联系软件的开发人员并询问他们。

      想想餐馆。如果你想知道他们的菜单上是否有特别的东西,或者他们是否打算把它放在那里,你最好看看菜单并询问厨师或经理。不要随便问街上的人是否有人可以帮助您...

      正如一些 cmets 中已经提到的,有一个不错的轻量级 Lua IDE,称为 ZeroBrane。除此之外,还有很多可扩展的文本编辑器。

      http://lua-users.org/wiki/LuaIntegratedDevelopmentEnvironments

      【讨论】:

      • 很多微软开发人员都在 Stack Overflow 上,微软将此网站标记为开发人员可以找到答案的地方,那么我认为这是询问 Visual Studio Code 的正确地方。
      • 关于 ZeroBrane,是的,它很好,但我不是在寻找 Lua IDE,但正如我所说,我正在寻找一种在 VSCode 上进行 Lua 开发的方法。如果你能帮忙很好,否则你不必回应。
      猜你喜欢
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 2021-10-01
      • 2016-09-07
      • 2019-04-03
      • 2015-08-04
      • 2018-05-01
      • 2020-09-07
      相关资源
      最近更新 更多