79 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * This file is generated by VSCode extension: Fileheader Pro
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * These comments can help you write your own template with type hint
 | 
						|
 * @typedef {Object} FileheaderVariable  Fileheader variables
 | 
						|
 * @property {string} birthtime file birth time. will get it from VCS or fallback to filesystem when it is not available
 | 
						|
 * @property {string} mtime file modification time. will get it from VCS or fallback to filesystem when it is not available
 | 
						|
 * @property {string} authorName if the file is tracked by VCS, it will get the author name from VCS. else it will get it from current user name
 | 
						|
 * @property {string} authorEmail if the file is tracked by VCS, it will get the author email from VCS. else it will get it from current user email
 | 
						|
 * @property {string} userName else it will get it from current user name
 | 
						|
 * @property {string} userEmail  user email is from VSCode config, and fallback to VCS config
 | 
						|
 * @property {string} companyName
 | 
						|
 * @property {string} projectName name of current project
 | 
						|
 * @property {string} filePath the file path, relative to project root with POSIX path separator
 | 
						|
 * @property {string} dirPath the directory path, relative to project root with POSIX path separator
 | 
						|
 * @property {string} fileName filename with extension
 | 
						|
 */
 | 
						|
 | 
						|
 /**
 | 
						|
 * @typedef {string | number | null | undefined | Template | boolean} TemplateInterpolation NOTE: boolean or falsy value will render empty string
 | 
						|
 *
 | 
						|
 * @typedef {{ strings: TemplateStringsArray; interpolations: TemplateInterpolation[]; }} Template
 | 
						|
 * @typedef {(strings: TemplateStringsArray, ...values: any[]) => string} ITemplateFunction
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Please confirm your provider extends from globalThis.FileheaderLanguageProvider
 | 
						|
 */
 | 
						|
class CustomLanguageProvider extends globalThis.FileheaderLanguageProvider {
 | 
						|
  /**
 | 
						|
   * @type {string[]}
 | 
						|
   */
 | 
						|
  languages = [
 | 
						|
    "java",
 | 
						|
    "javascript",
 | 
						|
    "typescript",
 | 
						|
    "javascriptreact",
 | 
						|
    "typescriptreact",
 | 
						|
  ];
 | 
						|
 | 
						|
  /**
 | 
						|
   * @type {string=} the language block comment start string.
 | 
						|
   * this is for future feature: support detect old custom template when custom template changes
 | 
						|
   */
 | 
						|
  blockCommentStart = "/**";
 | 
						|
 | 
						|
  /**
 | 
						|
   * @type {string=}
 | 
						|
   */
 | 
						|
  blockCommentEnd = "*/";
 | 
						|
 | 
						|
  /**
 | 
						|
   * get your template when document language matched
 | 
						|
   * @param {ITemplateFunction} tpl template function, it is a tagged function, support nested interpolation
 | 
						|
   * @param {FileheaderVariable} variables template variables
 | 
						|
   * @returns {Template}
 | 
						|
   */
 | 
						|
  getTemplate(tpl, variables) {
 | 
						|
    // prettier-ignore
 | 
						|
    return tpl
 | 
						|
`/**
 | 
						|
 * @Author: ${variables.authorName} <${variables.authorEmail}>
 | 
						|
 * @Date: ${variables.birthtime}
 | 
						|
 * @LastEditors: ${variables.userName}
 | 
						|
 * @LastModified: ${variables.mtime}
 | 
						|
 * @FilePath: ${variables.filePath}
 | 
						|
 * @Description:
 | 
						|
 *
 | 
						|
 *               Copyright (c) ${2025} by Kane All rights reserved
 | 
						|
 */`;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// export your provider classes
 | 
						|
module.exports = [CustomLanguageProvider];
 |