- 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."
12 lines
446 B
JavaScript
12 lines
446 B
JavaScript
'use strict';
|
|
|
|
module.exports = (text, separator = '_') => {
|
|
if (!(typeof text === 'string' && typeof separator === 'string')) {
|
|
throw new TypeError('The `text` and `separator` arguments should be of type `string`');
|
|
}
|
|
|
|
return text
|
|
.replace(/([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu, `$1${separator}$2`)
|
|
.replace(/(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu, `$1${separator}$2`)
|
|
.toLowerCase();
|
|
};
|