MCPcopy Index your code
hub / github.com/jsdoc/jsdoc / atomize

Function atomize

lib/jsdoc/name.js:269–344  ·  view source on GitHub ↗
(longname, sliceChars, forcedMemberof)

Source from the content-addressed store, hash-verified

267
268// TODO: docs
269function atomize(longname, sliceChars, forcedMemberof) {
270 let i;
271 let memberof = '';
272 let name = '';
273 let parts;
274 let partsRegExp;
275 let scopePunc = '';
276 let token;
277 const tokens = [];
278 let variation;
279
280 // quoted strings in a longname are atomic, so we convert them to tokens:
281 // foo["bar"] => foo.@{1}@
282 // Foo.prototype["bar"] => Foo#@{1}
283 longname = longname.replace(/(prototype|#)?(\[?["'].+?["']\]?)/g, ($, p1, p2) => {
284 let punc = '';
285
286 // is there a leading bracket?
287 if ( /^\[/.test(p2) ) {
288 // is it a static or instance member?
289 punc = p1 ? SCOPE.PUNC.INSTANCE : SCOPE.PUNC.STATIC;
290 p2 = p2.replace(/^\[/g, '')
291 .replace(/\]$/g, '');
292 }
293
294 token = `@{${tokens.length}}@`;
295 tokens.push(p2);
296
297 return punc + token;
298 });
299
300 longname = prototypeToPunc(longname);
301
302 if (typeof forcedMemberof !== 'undefined') {
303 partsRegExp = new RegExp(`^(.*?)([${sliceChars.join()}]?)$`);
304 name = longname.substr(forcedMemberof.length);
305 parts = forcedMemberof.match(partsRegExp);
306
307 if (parts[1]) {
308 memberof = parts[1] || forcedMemberof;
309 }
310 if (parts[2]) {
311 scopePunc = parts[2];
312 }
313 }
314 else if (longname) {
315 parts = (longname.match(new RegExp(`^(:?(.+)([${sliceChars.join()}]))?(.+?)$`)) || [])
316 .reverse();
317 name = parts[0] || '';
318 scopePunc = parts[1] || '';
319 memberof = parts[2] || '';
320 }
321
322 // like /** @name foo.bar(2) */
323 if ( /(.+)\(([^)]+)\)$/.test(name) ) {
324 name = RegExp.$1;
325 variation = RegExp.$2;
326 }

Callers 2

name.jsFile · 0.85
splitLongnameFunction · 0.85

Calls 2

prototypeToPuncFunction · 0.85
testMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…