TermiNexus
71cb333549
feat(vipeye-internal): __attribute__ 属性名结构化高亮(未声明的也不报错)
`@__attribute__(section(".text.startup"), aligned(16), stackrealign)` 里
`stackrealign` 原先不高亮(白色)且误报「无法访问类"type[attr]"的属性」。
根因:属性名脱糖成 `t.attr.<name>`,高亮完全依赖能否解析到 `class attr`
的声明。而 `stackrealign` 在真实 t.py 与 LSP 存根 t.vpi 的 attr 类里都没有
(两边一致、无缺失),只在 TransPyV 的 codegen 映射(FuncGenBase.vp:181)
里支持,ViperOS main.vp:347 在用。
改法(结构化,不依赖存根声明):
- parseNodes:NameNode.d 新增 isViperAttrMarkerName
- parser._makeViperAttrMarker:给合成的属性名成员名打该标记
- semanticTokenProvider._classifyNameNode:该标记直接按 function 着色
(与 section/aligned/naked 等已声明属性同款)
- typeEvaluator:新增 isViperAttrMarkerMember,与
isViperBracketArraySyntheticMember 一起跳过 memberAccess 诊断
(编译器对未知属性是静默丢弃,不是报错,故这是误报)
- viperAttribute.test.ts:增至 9 用例(新增未声明属性名 stackrealign 的
高亮 + 不报错断言)
- .gitignore:新增 __viper_attribute_unknown__/
- CHANGELOG:1.1.426 追加 1 条
2026-09-28 14:59:44 +08:00
..
2026-09-27 12:49:25 +08:00
2026-09-27 12:50:02 +08:00
2026-09-28 14:59:44 +08:00
2026-08-07 03:33:29 +08:00
2026-09-28 14:59:44 +08:00