- Hover provider showing entity information and type - Go-to-definition (F12) for entity references - Basic IFC file validation (ISO-10303-21 header check) - Entity parsing with regex-based detection - Proper CommonJS module system (avoiding ES module issues) This replaces the broken baseline from ifc-developer-tools which had: - Non-functional ES module configuration - Circular dependency issues - Parser crashes - Non-working PositionVisitor Built on Microsoft's LSP example template for a clean, maintainable foundation. Next: Add hierarchical entity dependency tree in hover tooltip."
10 lines
458 B
JavaScript
10 lines
458 B
JavaScript
export default function ansiRegex({onlyFirst = false} = {}) {
|
|
// Valid string terminator sequences are BEL, ESC\, and 0x9c
|
|
const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
|
|
const pattern = [
|
|
`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
|
|
'(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
|
|
].join('|');
|
|
|
|
return new RegExp(pattern, onlyFirst ? undefined : 'g');
|
|
}
|