开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2652|回复: 36
收起左侧

[易相关软件分享] 易承语言 ycIDE - 每日更新日志

[复制链接]
结帖率:92% (12/13)
发表于 2025-12-25 13:03:30 | 显示全部楼层 |阅读模式   泰国
本帖最后由 chungbin 于 2025-12-25 13:07 编辑

易承语言 ycIDE - 每日更新日志 - 后续将在本帖回帖补充不再开新贴

2025年12月25日

上午

  • 流程控制命令支持:实现流程控制命令自动补全和流程线绘制
    • .如果真()命令自动创建2行结构(缩进行、保护空行)
    • 流程控制内容自动缩进(使用单空格标记,渲染时固定20像素偏移)
  • 流程控制区块保护:流程控制区块后的普通空行不可删除
    • DELETE/BACKSPACE键智能处理:优先删除流程控制内的最后一行
    • 空缩进行自动删除整行,有内容的行删除最后字符并移动光标
  • 缩进行交互优化:
    • TAB键在流程控制内插入单空格,普通代码插入4空格,表格插入制表符
    • 鼠标点击缩进行正确定位光标到文本位置(而非行首)
    • 回车保持缩进状态
  • 输入法支持:输入法候选窗口跟随光标位置显示(不再显示在屏幕左上角)
  • 光标位置修正:缩进行光标计算使用固定20像素偏移,与文本对齐
  • .如果真结束命令处理:
    • 编辑器内部不显示此命令
    • 复制到外部时自动在流程控制结束位置插入.如果真结束
    • 从外部粘贴时自动过滤掉.如果真结束命令
  • 多选删除修复:修复多选文本后按删除键只删除部分内容的问题
    PixPin_2025-12-25_12-03-00.png
    ScreenShot_2025-12-24_012917_118.png

已知问题

  • 流程线绘制需要进一步完善

2025年12月24日

编辑器核心

  • 鼠标拖动选择优化:添加3像素阈值,避免单击误触发选择
  • 行号区域功能:鼠标悬停显示右箭头光标,单击/拖动选中整行
  • 表格选中优化:跨行选择普通代码时正确删除,表格跨单元格选择保护结构
  • 删除功能增强:删除所有数据行后自动删除对应表头(参数表/变量表)
  • 程序集保护:程序集区域外不允许输入普通代码,只能添加子程序
  • 命令输入提示:比如输入 ru 弹出跟 ru 相关的命令比如 '如果' 和 '如果真'

自动补全

  • AI停止功能:流式输出期间可随时中断
  • 光标初始化:程序启动时不显示光标,首次点击后显示
  • 鼠标指针:编辑区I型光标、标签/滚动条/按钮箭头光标

已知问题


历史更新


2025年12月23日及之前

  • 基础编辑器框架
  • 表格渲染系统
  • 关键词自动补全
  • AI聊天集成


项目状态:活跃开发中 | 最近更新:2025年12月25日


补充内容 (2025-12-26 18:13):
2025年12月26日上午的更新在8楼,下午的更新在9楼

补充内容 (2026-1-12 17:48):
今天的更新在24楼
https://bbs.ijingyi.com/forum.ph ... 78&pid=30651881

补充内容 (2026-1-17 18:16):
这几天的更新在26楼
https://bbs.ijingyi.com/forum.ph ... 78&pid=30657323

补充内容 (2026-1-26 13:33):
V0.0.0.16的更新在30楼
https://bbs.ijingyi.com/forum.ph ... 78&pid=30665788

补充内容 (2026-1-28 18:03):
v0.0.0.19的更新
https://bbs.ijingyi.com/forum.ph ... 78&pid=30668231

点评

支持一下   广东省深圳市  发表于 2025-12-26 13:06

评分

参与人数 8好评 +8 精币 +20 收起 理由
DDSGXQ + 1 + 3 YYDS~!
pyms + 1 + 2 很好很强悍,坚持下去哦~
落雪无尘 + 1 + 1 YYDS~!
EExiaolin + 1 + 3 互相讨论,共同进步
涛哥娱乐网 + 1 + 5 新技能已get√
没事瞎琢磨 + 1 + 1 YYDS~!
a524666979 + 1 + 3 支持开源~!感谢分享
小翁哥哥 + 1 + 2 感谢发布原创作品,精易因你更精彩!

查看全部评分

结帖率:92% (12/13)

签到天数: 1 天

 楼主| 发表于 2026-1-28 18:00:55 | 显示全部楼层   泰国

2026年1月28日 - ycIDE开发测试V0.0.0.19

  • 优化可视化设计器和组件箱的状态保存与恢复

    • 优化组件箱和可视化设计器的主题应用不立即刷新问题
    • 修复组件箱的保存状态

2026年1月27日 - ycIDE开发测试V0.0.0.18

  • 改进新建项目向导

    • 支持选择项目模板(空项目、控制台应用、GUI应用)
    • 支持设置项目名称和保存路径
    • 创建项目时自动生成基本目录结构和初始文件
  • 嵌套流程控制功能完善

    • 修复嵌套 .如果()``.如果真() 命令的流程线绘制,现在多层嵌套能正确显示
    • 优化嵌套标记格式:深度1使用 \u200C,深度2使用 \u200C\u200B\u200C,依此类推
    • 修正深度计算逻辑:通过统计 \u200C/\u200D 字符数量确定嵌套层级
    • 修复 BuildNestingMarker() 函数,生成正确格式的嵌套标记
  • Enter键行为修复

    • 修复在嵌套流程控制中按 Enter 键导致结构异常的问题
    • Enter 键和鼠标点击现在产生一致的格式化结果
    • 检测下一行是否已存在,避免重复创建行
  • 嵌套缩进优化

    • 增加嵌套偏移量从 15 像素到 20 像素
    • 嵌套命令和流程线更加清晰地向右缩进
    • 每层嵌套偏移:深度1=20px,深度2=40px,深度3=60px...
  • 代码质量改进

    • 添加调试日志功能 LogFlowLine() 便于问题追踪
    • 优化 IsFlowControlLine() 函数,正确跳过嵌套标记字符
    • 重构 GetNestingDepth() 函数,简化嵌套深度计算逻辑

2026年1月27日 - ycIDE开发测试V0.0.0.17

  • 编译器模块初步实现
    • 新增 Compiler.hCompiler.cpp 文件
    • 实现基础的编译器类 Compiler,包含编译入口函数 Compile() 和错误处理机制
    • 支持将源代码转换为中间表示(IR),为后续生成目标代码做准备
    • 实现简单的语义分析,检查变量声明和类型匹配


PixPin_2026-01-28_16-59-48.gif
回复 支持 反对

使用道具 举报

签到天数: 5 天

发表于 4 天前 | 显示全部楼层   湖北省孝感市

期待楼主新版面试
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 6 天

发表于 4 天前 | 显示全部楼层   四川省成都市
期待楼主新版面试
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 7 天

发表于 2026-1-26 15:18:11 | 显示全部楼层   四川省宜宾市

哎呦,哎呦,这个真厉害啊  大佬
回复 支持 反对

使用道具 举报

结帖率:92% (12/13)

签到天数: 1 天

 楼主| 发表于 2026-1-26 13:37:54 | 显示全部楼层   浙江省杭州市

接下来的更新得到年后去了,2月1号回国然后回家过年,这期间是没有更新的
回复 支持 反对

使用道具 举报

结帖率:92% (12/13)

签到天数: 1 天

 楼主| 发表于 2026-1-26 13:31:00 | 显示全部楼层   浙江省杭州市

2026年1月26日 - ycIDE开发测试V0.0.0.16

面板边框拖动调整宽度功能

  • 支持AI聊天窗口和资源管理器窗口左右交换

  • 优化主题和支持主题文件加载

  • AI聊天面板边框拖动

    • 支持拖动边框调整AI面板宽度
    • 正常模式下拖动左边框,交换模式下拖动右边框
    • 鼠标悬停时显示蓝色高亮提示
    • 边缘5像素区域支持穿透到主窗口进行窗口缩放
  • 资源管理器边框拖动

    • 支持拖动边框调整资源管理器宽度
    • 正常模式下拖动右边框,交换模式下拖动左边框
    • 鼠标悬停时显示蓝色高亮提示和调整光标
  • 性能优化 - 消除拖动闪烁

    • 主窗口添加 WS_CLIPCHILDREN 样式,避免子窗口区域重绘
    • 新增 WM_UPDATE_PANEL_LAYOUT 自定义消息,面板拖动时只更新相关窗口
    • 标签栏添加 WM_ERASEBKGND 处理,阻止背景擦除闪烁
    • 使用 LockWindowUpdateSWP_NOCOPYBITS 避免中间状态显示
    • 添加节流机制(约120fps)和 PostMessage 异步更新
    • 消息队列合并,丢弃重复的布局更新消息
  • 其他改进

    • 修复坐标处理使用 GET_X_LPARAM/GET_Y_LPARAM 替代 LOWORD/HIWORD,解决负坐标溢出问题
    • 移除标签栏"没有打开的文件"提示
    • 面板交换按钮点击后正确刷新AI窗口显示

2026年1月23日 - ycIDE开发测试V0.0.0.15

语法检查功能 - 词法和语法分析器实现(基础框架完成)

  • 词法分析器(Lexer)

    • 新增 Lexer.hLexer.cpp 文件
    • 实现Token类型定义:关键字、数据类型、标识符、字面量、运算符、分隔符等
    • 支持易语言特有语法:中文关键字、中文标识符、特殊运算符(×÷≠等)
    • 实现注释识别(单引号和双斜杠注释)
    • 支持字符串字面量和转义字符
    • 完整的数字识别(整数、小数、科学计数法)
    • 错误Token标记和错误信息提示
    • 动态加载支持:从KeywordManager和LibraryParser获取关键字和命令(不再硬编码)
  • 语法分析器(Parser)

    • 新增 Parser.hParser.cpp 文件
    • 定义AST(抽象语法树)节点类型:程序、声明、语句、表达式等
    • 实现递归下降解析器
    • 支持的语法结构:
    • 变量声明、常量声明
    • 子程序定义
    • 赋值语句、如果语句、循环语句(判断循环、计次循环)
    • 返回语句、跳出循环、继续循环
    • 运算符优先级处理(逻辑运算、比较运算、算术运算)
    • 函数调用、数组访问
    • 语法错误检测和错误恢复机制
    • 提供CheckSyntax接口用于快速语法检查
  • 语法检查器(SyntaxChecker)

    • 新增 SyntaxChecker.hSyntaxChecker.cpp 文件
    • 封装Lexer和Parser,提供简单易用的检查接口
    • 支持设置KeywordManager和LibraryParser作为数据源
    • 提供Check方法进行完整语法检查
    • 提供CheckLine方法进行单行快速检查
    • 支持获取Token列表用于语法高亮
  • 编辑器集成(部分完成)

    • 在YiEditor.h中添加syntaxErrors字段和syntaxCheckEnabled标志
    • 在YiEditor.cpp中添加PerformSyntaxCheck函数
    • 初始化全局SyntaxChecker实例
    • EditorDocument默认启用语法检查
    • 待完成:错误标记绘制、鼠标悬停提示、性能优化(详见语法检查集成说明.txt)
  • 测试程序

    • 新增 test_syntax.cpp 测试程序
    • 包含词法分析器测试、语法分析器测试、语法检查测试
    • 可用于验证和调试语法检查功能
  • 文档

    • 新增 语法检查说明.md 详细说明使用方法
    • 新增 语法检查集成说明.txt 说明待完成的集成工作
  • 版本更新

    • 版本号更新至 V0.0.0.15



PixPin_2026-01-26_12-30-38.png
912F82940FF76C83BC9DC8902CFA49E2.gif
回复 支持 反对

使用道具 举报

发表于 2026-1-24 00:19:56 高大上手机用户 | 显示全部楼层   四川省*
这更新速度牛逼
回复 支持 反对

使用道具 举报

结帖率:92% (12/13)

签到天数: 1 天

 楼主| 发表于 2026-1-19 16:47:00 | 显示全部楼层   泰国
本帖最后由 chungbin 于 2026-1-19 16:50 编辑

2026年1月19日 - ycIDE开发测试V0.0.0.13

可视化设计器多文档状态隔离与保存功能修复

  • 多文档状态独立管理

    • 修复了多个窗口文件(.efw)之间属性互相影响的问题
    • TabBar切换标签时先保存旧标签状态(2002消息),再加载新标签状态(2000消息)
    • 每个标签使用独立的FormInfo对象存储在TabBarData.editorData中
    • 切换标签时正确恢复各自的窗口属性、控件和选择状态
  • 文件保存功能完善

    • 修复了ToJson/FromJson字段名不匹配导致的保存失败问题(统一使用name/title/width/height)
    • 修复了关闭标签弹窗中点击"保存"按钮不能保存VisualDesigner文件的问题
    • 添加了editorType==2的保存分支,正确调用VisualDesigner::SaveFile
    • 修复了保存后资源管理器文件修改标记不清除的问题
    • 在IDM_SAVE和关闭标签保存中添加ExplorerSetFileModified(filePath, false)调用

2026年1月18日 - ycIDE开发测试V0.0.0.12

文件修改状态通知机制优化

  • 即时通知替代定时器轮询
    • 所有TableEditor子类(DataTypeEditor、GlobalVarEditor、DllEditor、ConstantEditor)现在使用 SetModified(true) 代替直接设置 m_modified = true
    • SetModified 方法在状态变化时自动调用 NotifyModified() 向主窗口发送通知
    • VisualDesigner(可视化设计器)也添加了相同的通知机制
    • 移除了DllEditor中重复的手动SendMessage通知代码

TAB键导航功能

  • 表格编辑器TAB键行为修复

    • TAB键现在移动焦点到下一个可编辑单元格,而不是插入制表符
    • Shift+TAB移动到上一个可编辑单元格
    • 自动跳过复选框列(通过 IsCellTextEditable 虚方法判断)
    • 到达行末自动跳到下一行第一个可编辑列
  • 为所有编辑器添加 IsCellTextEditable 实现

    • ConstantEditor:col==3(公开)不可编辑
    • GlobalVarEditor:col==3(公开)不可编辑
    • DataTypeEditor:数据类型行col==1、成员行col==2/3不可编辑
    • DllEditor:命令行col==2、参数行col==2/3不可编辑

标签页关闭逻辑修复

  • 修复关闭标签后编辑器不切换的问题
    • 关闭一个标签后,如果还有其他标签,现在会自动切换到新的活动标签对应的编辑器
    • TabBar::CloseTab 在删除标签后发送 WM_COMMAND(2000) 通知主窗口切换

ycIDE 开发计划

记录待开发功能和任务计划,按优先级排序


待开发功能

高优先级

序号 功能 描述 预计工时 状态
1 可视化设计器 设计窗口组件 最少一个星期 开发中
2 常量编辑器 常量表格编辑 一天 未开始

中优先级

序号 功能 描述 预计工时 状态
1 语法检查 提示语法错误与否 一个星期 未开始
2 编译器 编译为目标平台程序 一个月 未开始

低优先级

序号 功能 描述 预计工时 状态
1 多语言支持(i18n) 实现界面语言切换,支持中文/英文等多语言 2-3天 未开始
2 丰富支持库 完善和扩展更多功能支持库,增加库函数覆盖面 持续进行 未开始

已知BUG

序号 问题描述 复现步骤 优先级 状态
1 部分环境下表格列识别错误导致点击位置错位 代码编辑器的局部变量点击数组列变化的是静态列 未修复

功能建议/想法


已完成功能

功能 完成日期 备注
数据类型补全 2026-01-15 YiEditor/DllEditor支持拼音匹配
数据类型从支持库加载 2026-01-15 FneParser/LibraryParser
自定义数据类型编辑器 2026-01-17 DataTypeEditor
全局变量编辑器 2026-01-18 多选删除、回车插入、光标统一
可视化设计器基础功能 2026-01-19 属性加载、多文档隔离、文件保存


1FD12BA8D719983678695657E21EEBC4.png

D8260B634CC7AA46A9E30EB6A2C27D35.png
回复 支持 反对

使用道具 举报

结帖率:92% (12/13)

签到天数: 1 天

 楼主| 发表于 2026-1-18 12:38:28 | 显示全部楼层   泰国

2026年1月18日 - ycIDE开发测试V0.0.0.11

GlobalVarEditor(全局变量编辑器)已基本完善

  • 多选功能优化

    • 点击单元格自动清除多选状态
    • Delete键支持批量删除多选的行(从后往前删除避免索引错乱)
    • 行号区域点击立即选择该行
    • 拖动选择多行支持
  • 回车键插入新行

    • 任意行按回车都能在当前行下方插入新行(修复之前只能在最后一行插入的问题)
    • 编辑模式和非编辑模式下都可使用
    • 支持选中多行时在最后一行后插入
  • Backspace键修复

    • 修复编辑模式下Backspace无法删除文字的问题
  • 变量名自动命名

    • 插入新变量时自动生成不重复的变量名(新变量、新变量1、新变量2...)
    • 新变量默认不公开

编辑器光标统一优化

  • 所有编辑器光标宽度统一为1像素
    • GlobalVarEditor光标从2像素改为1像素
    • TableEditor光标从2像素改为1像素
    • YiEditor(源代码编辑器)光标从2像素改为1像素
    • DataTypeEditor、DllEditor已经是1像素保持不变

开发计划

记录待开发功能和任务计划,按优先级排序


待开发功能

高优先级

序号 功能 描述 预计工时 状态
1 可视化设计器 设计窗口组件 最少一个星期 未开始

中优先级

序号 功能 描述 预计工时 状态
1 语法检查 提示语法错误与否 一个星期 未开始
2 编译器 编译为目标平台程序 一个月 未开始

低优先级

序号 功能 描述 预计工时 状态
1 多语言支持(i18n) 实现界面语言切换,支持中文/英文等多语言 2-3天 未开始
2 丰富支持库 完善和扩展更多功能支持库,增加库函数覆盖面 持续进行 未开始

已知BUG

序号 问题描述 复现步骤 优先级 状态
1 部分环境下表格列识别错误导致点击位置错位 代码编辑器的局部变量点击数组列变化的是静态列 未修复

功能建议/想法


已完成功能

功能 完成日期 备注
数据类型补全 2026-01-15 YiEditor/DllEditor支持拼音匹配
数据类型从支持库加载 2026-01-15 FneParser/LibraryParser
exe版本信息 2026-01-15 VERSIONINFO资源
自定义数据类型编辑器 2026-01-17
全局变量编辑器 2026-01-18 多选删除、回车插入、光标统一


回复 支持 反对

使用道具 举报

结帖率:92% (12/13)

签到天数: 1 天

 楼主| 发表于 2026-1-18 12:28:26 | 显示全部楼层   泰国

2026年1月18日 - ycIDE开发测试V0.0.0.11

GlobalVarEditor(全局变量编辑器)已基本完善

  • 多选功能优化

    • 点击单元格自动清除多选状态
    • Delete键支持批量删除多选的行(从后往前删除避免索引错乱)
    • 行号区域点击立即选择该行
    • 拖动选择多行支持
  • 回车键插入新行

    • 任意行按回车都能在当前行下方插入新行(修复之前只能在最后一行插入的问题)
    • 编辑模式和非编辑模式下都可使用
    • 支持选中多行时在最后一行后插入
  • Backspace键修复

    • 修复编辑模式下Backspace无法删除文字的问题
  • 变量名自动命名

    • 插入新变量时自动生成不重复的变量名(新变量、新变量1、新变量2...)
    • 新变量默认不公开

编辑器光标统一优化

  • 所有编辑器光标宽度统一为1像素
    • GlobalVarEditor光标从2像素改为1像素
    • TableEditor光标从2像素改为1像素
    • YiEditor(源代码编辑器)光标从2像素改为1像素
    • DataTypeEditor、DllEditor已经是1像素保持不变

开发计划

记录待开发功能和任务计划,按优先级排序


待开发功能

高优先级

序号 功能 描述 预计工时 状态
1 自定义数据类型编辑器 支持用户自己自定义数据类型 半天时间 已完成
2 全局变量编辑器 整个程序都能调用的变量 半天时间 已完成
3 可视化设计器 设计窗口组件 最少一个星期 未开始

中优先级

序号 功能 描述 预计工时 状态
1 语法检查 提示语法错误与否 一个星期 未开始
2 编译器 编译为目标平台程序 一个月 未开始

低优先级

序号 功能 描述 预计工时 状态
1 多语言支持(i18n) 实现界面语言切换,支持中文/英文等多语言 2-3天 未开始

已知BUG

序号 问题描述 复现步骤 优先级 状态
1 部分环境下表格列识别错误导致点击位置错位 代码编辑器的局部变量点击数组列变化的是静态列 未修复

功能建议/想法


已完成功能

功能 完成日期 备注
数据类型补全 2026-01-15 YiEditor/DllEditor支持拼音匹配
数据类型从支持库加载 2026-01-15 FneParser/LibraryParser
自定义数据类型编辑器 2026-01-17
全局变量编辑器 2026-01-18


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表