forked from FINAKON/HelpProject
1. Initial Commit - a boiler plate code and POC to realize the concept of context sensitive help 2. Frontend code written in ReactJS 3. Backend code written in Java, Spring Boot Framework 4. Frontend Start: pre-requisites : node, npm npm run dev ==> to start the frontend vite server 5. Backend Start: pre-requisites : java, mvn mvn spring-boot:run ==> to start the backend server 6. Visit http://localhost:5173/ for basic demo of help, press F1 in textboxes 7. Visit http://localhost:5173/editor and enter "admin123" to add/modify texts. Happy Coding !!! Thank you, Bhargava.
62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
/**
|
|
* @typedef Options
|
|
* Configuration.
|
|
* @property {boolean | null | undefined} [jsx=false]
|
|
* Support JSX identifiers (default: `false`).
|
|
*/
|
|
|
|
const startRe = /[$_\p{ID_Start}]/u
|
|
const contRe = /[$_\u{200C}\u{200D}\p{ID_Continue}]/u
|
|
const contReJsx = /[-$_\u{200C}\u{200D}\p{ID_Continue}]/u
|
|
const nameRe = /^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u
|
|
const nameReJsx = /^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u
|
|
|
|
/** @type {Options} */
|
|
const emptyOptions = {}
|
|
|
|
/**
|
|
* Checks if the given code point can start an identifier.
|
|
*
|
|
* @param {number | undefined} code
|
|
* Code point to check.
|
|
* @returns {boolean}
|
|
* Whether `code` can start an identifier.
|
|
*/
|
|
// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.
|
|
export function start(code) {
|
|
return code ? startRe.test(String.fromCodePoint(code)) : false
|
|
}
|
|
|
|
/**
|
|
* Checks if the given code point can continue an identifier.
|
|
*
|
|
* @param {number | undefined} code
|
|
* Code point to check.
|
|
* @param {Options | null | undefined} [options]
|
|
* Configuration (optional).
|
|
* @returns {boolean}
|
|
* Whether `code` can continue an identifier.
|
|
*/
|
|
// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.
|
|
export function cont(code, options) {
|
|
const settings = options || emptyOptions
|
|
const re = settings.jsx ? contReJsx : contRe
|
|
return code ? re.test(String.fromCodePoint(code)) : false
|
|
}
|
|
|
|
/**
|
|
* Checks if the given value is a valid identifier name.
|
|
*
|
|
* @param {string} name
|
|
* Identifier to check.
|
|
* @param {Options | null | undefined} [options]
|
|
* Configuration (optional).
|
|
* @returns {boolean}
|
|
* Whether `name` can be an identifier.
|
|
*/
|
|
export function name(name, options) {
|
|
const settings = options || emptyOptions
|
|
const re = settings.jsx ? nameReJsx : nameRe
|
|
return re.test(name)
|
|
}
|