Coder Social home page Coder Social logo

luaide's Introduction

LuaIde

  1. author:kangping
  2. luaIde 是基于vscode开发的一款用于lua语言开发者使用的插件
  3. 目标:致力于做最好的跨平台lua开发工具
  4. 更新:luaide 个人开发者开发持续更新 (更新频率为一周一更)
  5. 平台支持:win,mac
  6. 代码调试:理论上只要支持 luasocket 就能调试 如果你的游戏引擎或 lua框架需要调试 请联系我

LuaIde 更新日志

  1. 2017/6/25 0.3.3-0.37 版本

    1. 方法返回值注释:--@returnValue [Model.BaseModel] 修改为 --@return [Model.BaseModel]
    2. 将同文件中的变量由只提示方法内的改为 当前文件全局提示
    3. 修复全局变量无法提示bug
    4. 修改某些情况方法返回值无法提示bug
    5. lua文件修改后在不保存的情况下搜索symbol定位错误
    6. 添加用户在线数量显示,可通过 luaide.showOnLine 进行关闭 5分钟刷新一次
    1. 2017/6/15 0.3.2 版本
    2. 修复添加新文件无法 无法在 require 和类型注释中提示的bug
    3. 修复for 循环中的变量错误的解析为全局变量
    4. 修复全局方法返回值 无法提示
    5. 添加注释提示
    6. 添加变量类型注释 --@valueReference [Model.BaseModel] 当输入[ 会列出当前文件中所有的文件
    7. 注释路径添加转到定义
    8. 添加写入初始化信息 文件夹权限不足提示
  2. 2017/6/8 0.3.0 版本 2. 增强代码推断能力,与0.2.x 版本用了两套逻辑 所以luaide 版本终结与0.2.1 以后待功能完善后 luaide将更名为luaIdeProfessional 3. 增加了 方法返回值 注释 和父类 类型注释

    1. 方法返回值注释:--@returnValue [Model.BaseModel] 当输入[ 会列出当前文件中所有的文件
    2. 父类类型注释:--@parentClass [Model.BaseModel] 当输入[ 会列出当前文件中所有的文件
    3. 两种注释需要 添加luaide 的配置 "luaide.scriptRoots": ["C:/Users/Administrator/Desktop/t"]

#重要提示

  1. LuaDebug 下载地址
  2. 文档请直接查看wiki
  3. qq群 494653114
  4. 调试文件为两个 LuaDebug,LuaDebugjit 添加调试文件时确认一下自己运行时选择对应的调试文件
  5. bug 和 问题 请留言 issues
  6. 调试视频
  7. 历史版本 如果当前版本出现bug 可将 win->:\Users\Administrator.vscode\extensions 和 mac->user/.vscode/extensions 中对应的文件夹删除将历史版本解压重启vscode

#更新记录

  1. 0.1.9->0.2.2

    1. 修复模块方法创建 插入位置错误 修改为插入到当前方法结束后
    2. 方法注释 @desc 无法显示bug
    3. 优化 require 时 lua 文件路径提示 兼容 "xxx.xxx.xx" 和 自定义变量 注意如果需要显示"xxx.xxx.xxx" 需要设置 luaide.scriptRoots
    4. 优化二进制lua文件导致的lua解析停止无法进行自动提示bug
    5. 添加最大文件检查限制 luaide.maxFileSize 默认为2048KB
    6. luaide.moduleFunNestingCheck 默认值修改为false -->该检测一定几率会检查错误,该问题将在0.2.1 修复
    7. 添加文件夹右键菜单 [创建模板文件] 模板文件配置 请看 安装 --> luaide.luaTemplatesDir
    8. 修正方法参数无法提示bug
    9. 格式化代码后#与变量名中多出一个空格 修改
    10. 修复由及时检查代码语法引起的 提示错误
  2. 0.1.9->0.2.1

    1. 添加 输入 --- 自动生成方法注释
    2. 优化方法信息提示 区分全局函数和局部函数
    3. 优化 require 时 lua 文件路径提示 兼容 "xxx.xxx.xx" 和 自定义变量 注意如果需要显示"xxx.xxx.xxx" 需要设置 luaide.scriptRoots
    4. 优化二进制lua文件导致的lua解析停止无法进行自动提示bug
    5. 添加最大文件检查限制 luaide.maxFileSize 默认为2048KB
    6. luaide.moduleFunNestingCheck 默认值修改为false -->该检测一定几率会检查错误,该问题将在0.2.1 修复
    7. 添加文件夹右键菜单 [创建模板文件] 模板文件配置 请看 安装 --> luaide.luaTemplatesDir
    8. 修正方法参数无法提示bug
    9. 格式化代码后#与变量名中多出一个空格 修改
    10. 修复由及时检查代码语法引起的 提示错误
  3. 0.1.8

    1. 根据 guoweidong1987 提供的方法修改lua代码格式化
    2. 添加 luaide.ChangeTextCheck 代码修改时是否检查lua语法是否正确
    3. 添加模块方法 luaide.moduleFunNestingCheck 模块方法嵌套检查,如果在一个方法中出现另外一个模块方法会认为是错误的
    4. 修改self 提示bug 无法提示三级和三级以上的代码 如 self.data.index
    5. 添加 require 时 lua 文件路径提示
  4. 0.1.7

    1. 添加显示介绍页面配置 luaide.isShowDest 默认为false 只显示一次,如需重复显示修改为true
    2. 修改代码格式化 换行处理 和 " 转义 bug
    3. 修改代码提示 function 方法中 定义的local 变量 无法提示 二级变量 的bug
    4. 添加数据统计接口 统计在线人数, 如果有反感这一行为的请联系我,后期考虑添加配置
    5. 优化debug 将 lua 和luajit 调试文件进行分离 coocs 和unity 如果使用luajit 的调试文件请使用luaDebugjit.lua 文件进行调试 调试文件地址为luadeubg/LuaDebug.lua or luadebug/Luadebugjit.lua
  5. 0.1.6 修改代码格式化bug

  6. 将源代码提交至github

捐献

支持LuaIde的开发 可以通过微信
IDE

luaide's People

Contributors

k0204 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

luaide's Issues

lua 关键字的提示优先级别高点

一、像if for 这样的,现在在整个队列的最下面。
二、关键字结束需要按ese才能关闭提示,像end 后面会有一堆提示 end
endaa
endbbb 这样子,

自动提示问题

file1

local test1 = {}
function test1:func1()
end
return test1

file2使用
mgr.Test1 = require("test1")
mgr.Test1:fun

mgr.Test1:将无法提示

渴望增加自定义api的功能

因为不同平台的需求,我们项目是unity的,有一些代码api都是由C# 提供的,原生api是由unity提供的库提供的,还有一些第三方dll库。如果可以自定义api提示,我们就可以直接自己生成这些api出来,在写代码提示的不会那么累 而且还可以做代码检查 是否使用规范 。

自动补全功能有问题

RT
当前自动补全只能提示本文件,而VSCODE自带的自动补全提示是整个项目,期待更新。

删除断点功能失效, 获取断点信息时, 盘符大小写不匹配导致不能正确删除断点.

windows cocos2dx 3.x + lua 工程
luadebug文件: luadebugJit.lua

获取断点信息时, 盘符大小写不匹配导致不能正确删除断点.

输出信息:

**第一次添加断点**
dump from: [string ".\luadebugJit.lua"]:841: in function 'debugger_setBreak'	
      断点信息
- "datas" = {	
-     1 = {	
-         "fileName"   = "LogonScene.lua"	
-         "lines" = {	
-             1 = 261	
-         }	
-         "serverPath" = "d:/RYclient/client/client/src/plaza/views/LogonScene.lua"<===小写盘符
-     }	
- }	
      添加断点结果
dump from: [string ".\luadebugJit.lua"]:869: in function 'debugger_setBreak'	
- "breakInfos" = {	
-     "LogonScene.lua" = {	
-         "d:/RYclient/client/client/src/plaza/views/LogonScene.lua" = {	<===小写盘符
-             "lines" = {	
-                 261 = true	
-             }	
-             "pathNames" = {	
-                 1 = "d:"	
-                 2 = "RYclient"	
-                 3 = "client"	
-                 4 = "client"	
-                 5 = "src"	
-                 6 = "plaza"	
-                 7 = "views"	
-                 8 = "LogonScene.lua"	
-             }	
-         }	
-     }	
- }	
isHook=>true	

**在断点断下后 删除断点**
      断点信息
dump from: [string ".\luadebugJit.lua"]:841: in function 'debugger_setBreak'	
- "datas" = {	
-     1 = {	
-         "fileName"   = "LogonScene.lua"	
-         "lines" = {	
-         }	
-         "serverPath" = "D:/RYclient/client/client/src/plaza/views/LogonScene.lua"<===大写盘符	
-     }	
- }	
      删除断点结果
dump from: [string ".\luadebugJit.lua"]:869: in function 'debugger_setBreak'	
- "breakInfos" = {	
-     "LogonScene.lua" = {	
-         "d:/RYclient/client/client/src/plaza/views/LogonScene.lua" = {	<===不能匹配小写盘符
-             "lines" = {	
-                 261 = true	
-             }	
-             "pathNames" = {	
-                 1 = "d:"	
-                 2 = "RYclient"	
-                 3 = "client"	
-                 4 = "client"	
-                 5 = "src"	
-                 6 = "plaza"	
-                 7 = "views"	
-                 8 = "LogonScene.lua"	
-             }	
-         }	
-     }	
- }	
isHook=>true	

**再次添加断点**
      断点信息
dump from: [string ".\luadebugJit.lua"]:841: in function 'debugger_setBreak'	
- "datas" = {	
-     1 = {	
-         "fileName"   = "LogonScene.lua"	
-         "lines" = {	
-             1 = 261	
-         }	
-         "serverPath" = "D:/RYclient/client/client/src/plaza/views/LogonScene.lua"<==大写盘符	
-     }	
- }	
      添加断点结果
dump from: [string ".\luadebugJit.lua"]:869: in function 'debugger_setBreak'	
- "breakInfos" = {	
-     "LogonScene.lua" = {	
-         "D:/RYclient/client/client/src/plaza/views/LogonScene.lua" = {	<============
-             "lines" = {	
-                 261 = true	
-             }	
-             "pathNames" = {	
-                 1 = "D:"	
-                 2 = "RYclient"	
-                 3 = "client"	
-                 4 = "client"	
-                 5 = "src"	
-                 6 = "plaza"	
-                 7 = "views"	
-                 8 = "LogonScene.lua"	
-             }	
-         }	
-         "d:/RYclient/client/client/src/plaza/views/LogonScene.lua" = {	<============
-             "lines" = {	
-                 261 = true	
-             }	
-             "pathNames" = {	
-                 1 = "d:"	
-                 2 = "RYclient"	
-                 3 = "client"	
-                 4 = "client"	
-                 5 = "src"	
-                 6 = "plaza"	
-                 7 = "views"	
-                 8 = "LogonScene.lua"	
-             }	
-         }	
-     }	
- }	
isHook=>true	

错误提示bug

BUG1:

for i,v in pairs(self.tempTeam) do
       g_DataPool:GetArenaData().defLayout[i] = v
end

这样v有红线

for i,v in pairs(self.tempTeam) do
       g_DataPool:GetArenaData().defLayout = v
end

这样就没有

BUG2
math.floor(x/60%z) 这样会有错误提示
math.floor(x/60 %z) 多个空格, 这样就不会有

语法检查问题

local test1 = 0.2
if 0.1>test1 then
end
if test>0.2 and 0.1>test1 then
end

0.1会报红

local test1 = 10010010
local test2 = test1/100%10

100会报红

关键字颜色 and or

if ets and type(ets) == str_table then --希望在此处的and加个颜色
	for k, v in pairs(ets) do
        
	end
end

格式化代码bug

右键点击格式化代码时会将转义字符的反斜杠 \ 删掉
格式化之代码前字符串 : local str = ""%s""
格式化代码之后变成 : local str = ""%s""

lua5.3 非符号提示非法

~0xff 例如这样的写法,十六进制数据前面的非符号会是红色的。不知道这个VS Code问题还是LuaIDE问题?

支持动态变量的智能提示

local data = require "data"

function get_data(id)

  return data

end

local temp_data = get_data(1)

temp_data.init() --这里就没法提示了

调试出错

触发断点后,点击F5继续执行,此后的print都不会再有输出,如果按的是f10,则会有继续的输出.

格式化代码

建议格式化的时候 不要把空行直接格式化掉
程序员都是强迫症患者 可以把多余的空行格式化成一行
再次感谢luaide

mac下面客户端的cocos的c++ log没法输出

在mac下面c++的log没法输出,在cocos中表现为CCLog的输出没有在vscode的调试控制台输出。但是oc的log也就是NSLog倒是可以输出。我尝试了用下面代码,是可以输出log的
var callfile = require('child_process');
var h = callfile.spawn("/Users/nervecell/workspaces/game.app/Contents/MacOS/game");
h.stdout.on('data', function (s) {
console.log(s.toString());
});
h.stdout.on('end', function () {
console.log('ls done');
});

代码格式化时字符串中有‘\’时仍然会有问题

1:采用[[ string ]]定义字符串时,
2:‘“’。 和”‘“ 会有问题:
3:” \a \x \b“ 之类的一些字符
以上情况格式化时都会出现‘\’数量变化的情况,

在我4月9号提交的pull request中针对解决了上述问题

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.