VScode配置LuatOS开发模拟环境

news/2024/7/16 9:03:02 标签: vscode, ide, 编辑器, lua, LuatOS

0x00 任务目标

1. 配置VScode中的Lua开发环境,包含代码提示等工具。

2. 配置Code Runner,让其Lua代码运行在VSCode中的LuatOS模拟器中。

0x01 配置Lua开发环境

VSCode支持在不同的工作环境配置不同插件,类似于虚拟环境。我们将在VSCode中配置专属于LuatOS的开发环境。

1. 创建VSCode配置环境并切换

启动VSCode,点击设置->配置文件(默认)->创建配置文件

在弹出的对话框中,输入我们创建的配置文件名称:“LuatOS”,可自定义名称,并点击确认。

此时VSCode应该自动切换了配置文件,且插件应该仅仅安装了中文插件,这个环境非常纯净。如果没有切换或者想要切换到其他环境,可以在点击设置,切换不同的配置文件。

上图可以看到,我配置了很多配置文件,当前使用了LuatOS配置。

2. 安装LuatOS扩展

参考LuatOS官网文档,安装插件“LuatOS-SOC推荐拓展包”、“LuatOS-SOC代码补全”和“Code Runner”,安装完成后应该如下图所示。

3. 创建HelloWorld工程

😊 此时,开发环境已经配置成功,可以在特定的位置创建一个工程目录,并用VSCode打开,笔者创建了一个HelloWorld工程,并编写了main.lua,如下图所示:

PROJECT = "hello_world"
VERSION = "0.0.1"

-- 代码来自于LuatOS模拟器:“https://wiki.luatos.com/_static/luatos-emulator/lua.html”
-- 此处为纯lua5.3测试场地
-- 同时,支持加载sys库,使用task框架特性
-- 如下:

-- 加载sys库
sys = require("sys")

-- 启动一个定时器
sys.timerLoopStart(function()
    log.info("Timer:", os.time())
end, 1000)

-- 新建任务,每休眠2000ms继续一次
sys.taskInit(function()
    local count = 0
    while true do
        sys.wait(2000) -- 等待2000ms
        count = count + 1
        log.info("Task", "Running: ", count, "Times")
    end
end)

-- 用户代码已结束---------------------------------------------
-- 运行lua task,只能调用一次,而且必须写在末尾
-- 结尾总是这一句
print("HelloWorld")
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

0x02 配置LuatOS模拟器

1. 下载LuatOS模拟器文件并解压

前往合宙网盘下载对应文件,并解压到特定目录,笔者将文件解压至了目录:“D:\LuatOSeMulator”

2. 测试LuatOS是否正常使用

复制上述main.lua至该目录,利用命令行运行lua文件到模拟器中。

在当前目录下运行Windows PowerShell,并运行以下代码:

.\luatos.exe .\main.lua

😊 当前模拟器运行正常。

0x03 配置Code Runner一键运行在LuatOS模拟器中

本小节将介绍利用Code Runner直接在VSCode的终端中使用LuatOS模拟器运行Lua。

1. 配置Code Runner

通过UI或者快捷键打开Code Runner的配置项,可以看到以下配置项。

必选配置项Code-runner: Run In Terminal,终端中运行,必须勾选。

【可选配置项】Code-runner: Save All Files Before Run,运行前保存所有文档,个人可以按照自己的需要勾选。

【可选配置项】Code-runner: Save File Before Run,运行前保存当前文档,个人可以按照自己的需要勾选。

除了“必选配置项”外,其余配置项可以根据自身配置。通过浏览或者利用搜索框筛选,找到配置项:“Executor Map”

点击“在setting.json中编辑”,打开配置文本,找到lua的配置项,填写模拟器可执行文件的路径,如下图所示,并快捷键操作Ctrl+S保存设置。

😊 此时已经完成模拟器运行的配置。

2. 测试效果

在VSCode中,打开HelloWorld的main.lua,并点击“运行”按钮,若出现以下内容,则说明已经运行成功,终止运行请输入“Ctrl C”

0x04 存在的问题

1. 未配置调试

配置完成后,利用本文方法配置后,无法调试运行在LuatOS模拟器中的程序,可能需要Print大法。

2. 中文编码异常

若输出包含中文,编码异常,当前未找到方法解决,如下图片所示。

0x05 参考文档与资源

1. 开发环境搭建 - LuatOS 文档

2. LuatOS 在线模拟 - lua在线测试

3. 合宙文件云盘

4. vscode code runner配置_vs code code runner setting-CSDN博客

0x06 后记

  • No Pains,No Gains

http://www.niftyadmin.cn/n/5406980.html

相关文章

「滚雪球学Java」:多线程(章节汇总)

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

SpringBoot中实现拦截器和过滤器

1.过滤器和拦截器简述 过滤器Filter和拦截器Interceptor, 在功能方面很类似, 但在具体实现方面差距还是比较大。 1.1 运行顺序不同:Filter →Servlet →Interceptor→Controller;1.2 配置方式不同:Filter在web.xml中…

wordpress模板官网

移民wordpress主题 移民代办wordpress主题,适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 夏令营wordpress主题 绿色夏令营wordpress主题,适合做夏令营或户外拓展的公司搭建wordpress官方网站…

密码学之椭圆曲线

引言 DH(Diffie-Hellman)密钥交换算法于1976年提出,是第一个公开密钥交换算法。其基础是数学中的群论,群论也是大多数公开密钥密码的基础。简单来说,群是一组元素的集合以及在这些元素上定义的特殊二元运算。 一个群需要满足如下性质: 封闭性:群中两个元素的运算结果仍…

关于axios的小知识

发请求1 axios({method: GET, //请求类型url:路径, //设置请求路径data:{ //设置请求体title: "afafa"author: "afafa"} }).then(response > {console.log(response); }) 发请求2 axios.request({method: GET,url: 路径 }).then(response &…

《解密C语言大小写字母转化:让你的编程之路更加灵活》

在编程的世界里,C语言是一门至关重要的语言之一,无论是初学者还是资深程序员,都离不开它的应用。而在C语言编程中,大小写字母的转化是一个常见的需求,但很多人可能并不了解其中的奥秘。今天,我们就来揭开这…

快速搭建Vue前端框架

快速搭建Vue前端框架 安装Vue Vue官方安装过程:https://cli.vuejs.org/zh/guide/installation.html 二.创建Vue工程 2.2 安装淘宝镜像 安装淘宝镜像(会让你安装Vue的速度加快): npm config set registry https://registry.npm.taobao.or…

hnust 湖南科技大学 2022 数据挖掘课设 完整代码+报告+图源文件+指导书

hnust 湖南科技大学 2022 数据挖掘课设 完整代码报告图源文件指导书 目录 实验一 Apriori算法设计与应用 - 1 - 一、 背景介绍 - 1 - 二、 实验内容 - 1 - 三、 实验结果与分析 - 2 - 四、 小结与心得体会 - 3 - 实验二 KNN算法设计与应用 - 4 - 一、 背景介绍 - 4 - 二、 实…