Copyright Notice Generator

December 27, 2025 ยท View on GitHub

Version Installs Rating

Automatically add customizable copyright notices to your code files across multiple programming languages. Perfect for ensuring proper intellectual property protection in your projects.

โœจ What's New in v1.1.12

  • ๐ŸŽญ Copyright Profiles: New profiles system allowing different copyright templates for open source, commercial, and internal development projects

โœจ What's New in v1.1.11

  • ๐Ÿ“ Apply to All Files: New command "Apply Copyright Notice to All Files in Project" processes all eligible files in your workspace at once in the background

โœจ What's New in v1.1.10

  • ๐Ÿ Fixed Python Timestamp Updates: "Last Updated" timestamps now properly update in Python files using # style comments.

โœจ What's New in v1.1.9

  • ๐ŸŒ UTC Timezone Support: New useUtc configuration option for UTC timestamps instead of local timezone.
  • ๐Ÿ• Enhanced Timestamp Parsing: Improved parsing supports both UTC and local timezone timestamps.

โœจ What's New in v1.1.8

  • ๐Ÿ—๏ธ Go Language Support: Full support for Go files with proper comment formatting using /** */ style comments.
  • ๐Ÿ“… ISO 8601-2:2019 Timestamp Format: Updated default timestamp format to comply with ISO 8601-2:2019 standard (YYYY-MM-DDTHH:mm:ss).

โœจ What's New in v1.1.6

  • ๐Ÿ Enhanced Python Support: Copyright notices are now always inserted at the very beginning of Python files, even before docstrings and shebangs, ensuring proper module structure.

โœจ What's New in v1.1.5

  • ๐Ÿ”‡ Silent Background Operation: Works invisibly without interrupting your workflow
  • โšก Smart Debouncing: Intelligent delay management adapts to file activity levels
  • ๐ŸŽฏ Advanced Detection: Improved copyright pattern recognition with confidence scoring
  • ๐Ÿ“ Folder Restrictions: Control where copyright notices are applied
  • ๐Ÿ›ก๏ธ Comprehensive Exclusions: Auto-excludes common build/dependency folders
  • ๐Ÿ“Š Performance Optimized: Smart caching and configurable delays for smooth operation
  • ๐Ÿ”ง Configurable Timing: Customize delays and behavior to match your workflow
  • ๐Ÿ“ˆ Enhanced Diagnostics: Built-in testing and analysis tools
  • ๐Ÿ”„ Automatic Comment Conversion: Templates automatically adapt comment styles (JavaScript /** */ โ†’ Python # โ†’ Shell #)
  • ๐ŸŒ Expanded Language Support: Enhanced Python and shell script templates with detailed metadata

Extension Demo

Key Features

  • โœจ Automatic Background Insertion: Silently adds copyright notices to new files in the background
  • ๐Ÿ”„ Manual Command: Apply notice on demand with the Command Palette
  • ๐Ÿ“ Apply to All Files: Process all eligible files in your project at once with background progress reporting
  • ๐Ÿ”ง Profile Diagnostics: Built-in diagnostic tools for troubleshooting profile selection issues
  • ๐ŸŽญ Copyright Profiles: Switch between different copyright templates (open source, commercial, internal development)
  • ๐Ÿ˜€ Emoji Removal: Remove all emojis from files with a single command
  • ๐ŸŒ Multi-language Support: Works with all programming languages
  • ๐Ÿ”„ Automatic Comment Conversion: Templates automatically adapt to language-specific comment styles
  • ๐Ÿ“ Customizable Templates: Use your own copyright text with dynamic year insertion
  • ๐Ÿ•’ Timestamp Support: Include creation date and time in your notices
  • ๐Ÿ”„ Update Time Tracking: Automatically updates the "last modified" timestamp
  • ๐Ÿ” Smart Detection: Avoids duplicate notices with advanced pattern recognition
  • ๐Ÿงฉ File Extension Filtering: Target specific file types
  • ๐Ÿ“ Folder Restrictions: Control where copyright notices are applied
  • ๐Ÿ›ก๏ธ Smart Exclusions: Auto-excludes common build/dependency folders (node_modules, .git, dist, etc.)
  • ๐Ÿง  Intelligent Debouncing: Adapts delay based on file activity for optimal performance
  • ๐Ÿ”‡ Silent Mode: Works invisibly in the background without notifications
  • โšก Performance Optimized: Smart caching and configurable delays for smooth operation
  • ๐Ÿ“Š Advanced Diagnostics: Comprehensive analysis and detailed reporting

How It Works

Background Operation

The extension works silently in the background, automatically adding copyright notices to new files without interrupting your workflow. When you open a file without a copyright notice, it gets added seamlessly after a configurable delay.

Smart Detection

Uses advanced pattern recognition to detect existing copyright notices, avoiding duplicates and handling various comment formats across different programming languages.

Automatic Comment Style Conversion

The extension automatically adapts your copyright template to match the appropriate comment style for each programming language:

  • JavaScript/TypeScript/C/C++/Go: Uses /** */ multiline comments
  • Python/Shell Scripts: Automatically converts /** */ templates to # comments
  • Custom Templates: Works with any template format - the extension detects the language and converts accordingly

This means you can use the same JavaScript-style template across all your projects, and the extension will automatically format it correctly for Python files, shell scripts, Go files, and other languages!

Use the "Select Copyright Profile" command to switch between different copyright templates. Each profile can have its own template, timestamp settings, and description. Perfect for managing different types of projects:

  • Open Source: MIT license templates for public projects
  • Commercial: Proprietary license templates for commercial software
  • Internal Development: Templates for company-internal development

Multiple Trigger Points

  • File Opening: Automatically processes files when first opened
  • Typing Pauses: Adds copyright during editing after configurable delay
  • Smart Debouncing: Adapts delay based on how recently you worked with the file
  • Manual Command: Apply notice on demand with the Command Palette (Ctrl+Shift+P)
  • Apply to All Files: Process entire project at once using "Apply Copyright Notice to All Files in Project" command
  • Editor Switching: Processes files when switching between editors
  • Inactive File Detection: Immediately updates copyright when switching to long-unused files

Emoji Management

Remove all emojis from any file using the "Remove All Emojis from File" command. This is useful for cleaning up code that contains unwanted emoji characters.

Apply to All Files

Use the "Apply Copyright Notice to All Files in Project" command to process your entire project at once. This command:

  • ๐Ÿ” Scans your entire workspace for eligible files
  • ๐ŸŽฏ Respects all your configuration (file extensions, exclusions, allowed folders)
  • โณ Shows progress with a cancellable progress bar
  • ๐Ÿ“Š Reports results with counts of processed, skipped, and error files
  • ๐Ÿ”‡ Works silently without interrupting your workflow

Perfect for:

  • โœ… New projects - Apply copyright to all files at once
  • ๐Ÿ”„ Existing projects - Bulk update copyright notices
  • ๐Ÿ“ Large codebases - Process thousands of files efficiently

How to use:

  1. Press Ctrl+Shift+P (or Cmd+Shift+P on Mac)
  2. Type "Apply Copyright Notice to All Files in Project"
  3. Press Enter to start processing
  4. Monitor progress in the notification area

Configuration Options

Core Settings

  • copyright-notice.languages: Languages that the extension will be activated for (default: all languages)
  • copyright-notice.fileExtensions: File extensions to which the copyright notice will be applied (e.g., ['.js', '.ts', '.py']). Use ['*'] for all files.
  • copyright-notice.excludedFiles: File patterns to exclude from copyright notices. Supports glob patterns. Defaults include common build/dependency folders like node_modules, .git, dist, build, etc.
  • copyright-notice.allowedFolders: Comma-separated list of folder paths where copyright notices can be applied. If empty, applies to all folders. Paths can be relative to workspace root or absolute (e.g., ['src', 'lib', 'app/components']).
  • copyright-notice.template: Copyright notice template. Use {year} for the current year, {timestamp} for creation time, and {updatetime} for last update time.

Default Exclusions

The extension automatically excludes these common folders and files by default:

  • **/node_modules/** - Node.js dependencies
  • **/.git/** - Git repository data
  • **/.vscode/** - VS Code settings
  • **/dist/** - Distribution/build output
  • **/build/** - Build artifacts
  • **/.next/** - Next.js build files
  • **/.nuxt/** - Nuxt.js build files
  • **/coverage/** - Test coverage reports
  • **/.nyc_output/** - NYC coverage output
  • **/*.log - Log files
  • **/package-lock.json - NPM lock file
  • **/yarn.lock - Yarn lock file
  • **/.DS_Store - macOS system files
  • **/Thumbs.db - Windows system files

Timestamp Configuration

  • copyright-notice.includeTimestamp: Whether to include timestamp when the copyright notice was added (default: false).
  • copyright-notice.timestampFormat: Format for the timestamp (default: "YYYY-MM-DDTHH:mm:ss"). ISO 8601-2:2019 compliant.
  • copyright-notice.includeUpdateTime: Whether to include and update the "last updated" timestamp (default: false).
  • copyright-notice.updateTimeFormat: Format for the update timestamp (default: "YYYY-MM-DDTHH:mm:ss"). ISO 8601-2:2019 compliant.
  • copyright-notice.useUtc: Whether to use UTC timezone for timestamps instead of local timezone (default: false).

Background Operation

  • copyright-notice.silentMode: Whether to apply copyright changes silently in the background without showing notifications (default: true).
  • copyright-notice.backgroundUpdateDelay: Delay in milliseconds before applying background copyright updates after typing stops (default: 1500, min: 500, max: 10000).
  • copyright-notice.smartDebouncing: Enable smart debouncing that increases delay for files that haven't been modified recently, allowing copyright updates even for inactive files (default: true).
  • copyright-notice.smartDebounceMultiplier: Multiplier for debounce delay when file hasn't been modified for a while (default: 2.0, min: 1.0, max: 5.0).
  • copyright-notice.smartDebounceThreshold: Time in milliseconds after which smart debouncing activates (default: 300000 = 5 minutes).

Additional Features

  • copyright-notice.autoRemoveEmojis: Whether to automatically remove all emojis from files when they are saved (default: false).

Profile Configuration

  • copyright-notice.profiles: Array of copyright profiles with different templates and settings
  • copyright-notice.activeProfile: Name of the currently active copyright profile (default: "Open Source MIT")
  • copyright-notice.profileAuthors: Object storing custom author names for each profile (key: profile name, value: author name)

Example Settings

JavaScript/TypeScript Development

{
  "copyright-notice.languages": [
    "javascript", 
    "typescript"
  ],
  "copyright-notice.fileExtensions": [
    ".js",
    ".jsx",
    ".ts",
    ".tsx"
  ],
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * All rights reserved.\n */\n\n"
}

With Creation and Update Timestamps

{
  "copyright-notice.includeTimestamp": true,
  "copyright-notice.includeUpdateTime": true,
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * Created: {timestamp}\n * Last Updated: {updatetime}\n * All rights reserved.\n */\n\n"
}

Custom Timestamp Formats

{
  "copyright-notice.includeTimestamp": true,
  "copyright-notice.timestampFormat": "DD/MM/YYYY",
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * Date: {timestamp}\n * All rights reserved.\n */\n\n"
}
{
  "copyright-notice.includeTimestamp": true,
  "copyright-notice.timestampFormat": "YYYY.MM.DD at HH:mm",
  "copyright-notice.template": "/**\n * Created on {timestamp}\n * Copyright (c) {year} Your Company Name\n * All rights reserved.\n */\n\n"
}

With UTC Timestamps

{
  "copyright-notice.includeTimestamp": true,
  "copyright-notice.includeUpdateTime": true,
  "copyright-notice.useUtc": true,
  "copyright-notice.timestampFormat": "YYYY-MM-DDTHH:mm:ss",
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * Created: {timestamp} (UTC)\n * Last Updated: {updatetime} (UTC)\n * All rights reserved.\n */\n\n"
}

C/C++ Development

{
  "copyright-notice.languages": [
    "c",
    "cpp"
  ],
  "copyright-notice.fileExtensions": [
    ".c",
    ".cpp",
    ".h",
    ".hpp"
  ],
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * All rights reserved.\n */\n\n"
}

Python Development

{
  "copyright-notice.languages": [
    "python"
  ],
  "copyright-notice.fileExtensions": [
    ".py",
    ".pyw"
  ],
  "copyright-notice.template": "# Copyright (c) {year} Bivex\n#\n# Author: Bivex\n# Available for contact via email: support@b-b.top\n# For up-to-date contact information:\n# https://github.com/bivex\n#\n# Created: {timestamp}\n# Last Updated: {updatetime}\n#\n# Licensed under the MIT License.\n# Commercial licensing available upon request.\n\n"
}

PHP Development

{
  "copyright-notice.languages": [
    "php"
  ],
  "copyright-notice.fileExtensions": [
    ".php"
  ],
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * All rights reserved.\n */\n\n"
}

Shell Script Development

{
  "copyright-notice.languages": [
    "shellscript"
  ],
  "copyright-notice.fileExtensions": [
    ".sh",
    ".bash",
    ".zsh"
  ],
  "copyright-notice.template": "# Copyright (c) {year} Your Company Name\n# All rights reserved.\n\n"
}

AutoHotkey Development (.ahk and .ahk2 files)

{
  "copyright-notice.fileExtensions": [
    ".ahk",
    ".ahk2"
  ],
  "copyright-notice.excludedFiles": [
    "*.json",
    "*.config.js",
    "package.json"
  ],
  "copyright-notice.template": "/*\n * Copyright (c) {year} Your Company Name\n * All rights reserved.\n */\n\n"
}

Note: The extension now works with .ahk2 files even if VS Code doesn't recognize the language ID. Simply add the file extension to the fileExtensions array.

Go Development

{
  "copyright-notice.languages": [
    "go"
  ],
  "copyright-notice.fileExtensions": [
    ".go"
  ],
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company Name\n * All rights reserved.\n */\n\n"
}

Silent Background Mode

{
  "copyright-notice.silentMode": true,
  "copyright-notice.backgroundUpdateDelay": 1000,
  "copyright-notice.template": "/* Copyright (c) {year} Your Company */\n\n"
}

This configuration enables completely silent operation with copyright notices added automatically in the background with a 1-second delay after typing stops.

Fast Interactive Mode

{
  "copyright-notice.silentMode": false,
  "copyright-notice.backgroundUpdateDelay": 500,
  "copyright-notice.includeUpdateTime": true,
  "copyright-notice.template": "/**\n * Copyright (c) {year} Your Company\n * Last Updated: {updatetime}\n */\n\n"
}

This configuration shows notifications and applies changes quickly, with automatic timestamp updates.

Restricted Folders Mode

{
  "copyright-notice.allowedFolders": ["src", "lib", "app/components"],
  "copyright-notice.silentMode": true,
  "copyright-notice.backgroundUpdateDelay": 2000
}

This configuration only applies copyright notices to files in the specified folders (src, lib, and app/components), leaving other folders untouched.

Smart Debouncing Mode

{
  "copyright-notice.smartDebouncing": true,
  "copyright-notice.smartDebounceMultiplier": 3.0,
  "copyright-notice.smartDebounceThreshold": 600000,
  "copyright-notice.silentMode": true
}

This configuration enables smart debouncing with 3x delay increase for files inactive for more than 10 minutes, ensuring copyright updates even for files you haven't worked on recently.

Custom Exclusions

{
  "copyright-notice.excludedFiles": [
    "**/node_modules/**",
    "**/.git/**",
    "**/.vscode/**",
    "**/dist/**",
    "**/build/**",
    "**/temp/**",
    "**/cache/**",
    "**/*.tmp",
    "**/*.bak"
  ]
}

This configuration adds custom exclusions (temp, cache, temporary files) in addition to the default exclusions.

The extension comes with 10 pre-configured profiles covering various use cases:

  1. Open Source MIT - Standard MIT license for open source projects
  2. Apache 2.0 - Apache License 2.0 for permissive open source
  3. GPL v3 - GNU General Public License v3 for copyleft projects
  4. BSD 3-Clause - BSD 3-Clause License for academic and research
  5. Commercial - Proprietary license for commercial software
  6. Internal Development - Template for company internal development
  7. Academic Research - Template for universities and research institutions
  8. Government/Public - Template for government and public sector projects
  9. Startup/Prototype - Template for startup MVPs and prototypes
  10. Educational - Template for learning and educational projects

๐Ÿ“‹ Supported License Templates

Open Source Licenses

LicenseSPDX IDDescriptionWhen to Use
MITMITPermissive license allowing commercial use, modification, and distribution with minimal restrictionsMost popular for open source libraries and tools
Apache 2.0Apache-2.0Permissive license with patent protection clauses and contributor agreement requirementsEnterprise-friendly, good for commercial adoption
GPL v3GPL-3.0-or-laterCopyleft license requiring derivative works to also be GPL-licensedStrong copyleft, ensures free software remains free
BSD 3-ClauseBSD-3-ClausePermissive license with attribution requirements and no endorsement clauseAcademic and research software, permissive licensing

Proprietary Licenses

License TypeDescriptionWhen to Use
CommercialStandard proprietary license with all rights reservedCommercial software products and services
Internal DevelopmentCompany-internal use with restricted distributionEnterprise internal tools and applications
Government/PublicPublic domain or government-specific licensingGovernment agencies and public sector projects
Startup/PrototypeEarly-stage prototype with confidentiality clausesMVPs, beta versions, and startup projects
EducationalAcademic and learning materials licensingCourse materials, tutorials, and educational software

License Compatibility Matrix

LicenseCan be used in proprietary softwareRequires source code disclosurePatent protection
MITโœ… YesโŒ NoโŒ No
Apache 2.0โœ… YesโŒ Noโœ… Yes
GPL v3โŒ No (creates copyleft)โœ… YesโŒ No
BSD 3-Clauseโœ… YesโŒ NoโŒ No
CommercialโŒ NoโŒ Noโœ… Yes

SPDX License Identifiers

All open source license templates include proper SPDX license identifiers for compliance with modern package management systems and legal requirements.

{
  "copyright-notice.profiles": [
    {
      "name": "MIT Open Source",
      "description": "Standard MIT license template for open source projects",
      "template": "/**\n * Copyright (c) {year} [Your Name]\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * @author [Your Name]\n * @license MIT\n */\n\n",
      "includeTimestamp": true,
      "includeUpdateTime": true
    },
    {
      "name": "Commercial License",
      "description": "Proprietary license for commercial software",
      "template": "/**\n * Copyright (c) {year} [Company Name]\n *\n * This software and related documentation are proprietary to [Company Name].\n * All rights reserved. Unauthorized copying, modification, distribution,\n * or use is strictly prohibited.\n *\n * For licensing inquiries, please contact:\n * [Company Name]\n * [Contact Email]\n * [Contact Website]\n *\n * Created: {timestamp}\n * Last Updated: {updatetime}\n *\n * Confidential and Proprietary Information\n */\n\n",
      "includeTimestamp": true,
      "includeUpdateTime": true
    },
    {
      "name": "Internal Development",
      "description": "Template for internal company development",
      "template": "/**\n * Copyright (c) {year} [Company Name] - Internal Use Only\n *\n * This software is the confidential and proprietary information of [Company Name].\n * You shall not disclose such Confidential Information and shall use it only\n * in accordance with the terms of the license agreement you entered into with [Company Name].\n *\n * INTERNAL DEVELOPMENT VERSION\n * Not for distribution or external use.\n *\n * Created: {timestamp}\n * Last Updated: {updatetime}\n *\n * @internal\n * @company [Company Name]\n */\n\n",
      "includeTimestamp": true,
      "includeUpdateTime": true
    }
  ],
  "copyright-notice.activeProfile": "MIT Open Source"
}

Profile Switching with Author Customization

To switch between copyright profiles and customize the author name:

  1. Press Ctrl+Shift+P (or Cmd+Shift+P on Mac)
  2. Type "Select Copyright Profile"
  3. Choose your desired profile from the list
  4. Enter your name or company name when prompted
  5. The extension will save your author name and immediately start using the selected profile's template

Author names are saved per profile, so you can have different authors for different types of projects (personal, company, open source, etc.).

Quick Profile Switching: Use the "โšก Quick Switch (keep current author)" option to change profiles without modifying the author name.

Profile Diagnostics

If you encounter issues with profile selection:

  1. Press Ctrl+Shift+P (or Cmd+Shift+P on Mac)
  2. Type "Diagnose Copyright Profiles"
  3. Check the Developer Console (Help โ†’ Toggle Developer Tools) for detailed diagnostic information

The diagnostic command will show:

  • Number of available profiles
  • Currently active profile
  • Author names for each profile
  • Troubleshooting suggestions

Individual Entrepreneur / Sole Proprietor

{
  "copyright-notice.includeTimestamp": true,
  "copyright-notice.includeUpdateTime": true,
  "copyright-notice.template": "/**\n * Copyright (c) {year} [Your Name], Individual Entrepreneur\n * INN: [Your Tax ID Number]\n * Created: {timestamp}\n * Last Updated: {updatetime}\n * All rights reserved. Unauthorized copying, modification,\n * distribution, or use is strictly prohibited.\n */\n\n"
}

Additional Template Examples

The extension comes with 10 pre-configured copyright profiles and a variety of additional templates:

Built-in Profiles (10 total):

  • Open Source: MIT, Apache 2.0, GPL v3, BSD 3-Clause
  • Commercial: Commercial license, Internal Development
  • Specialized: Academic Research, Government/Public, Startup/Prototype, Educational

Additional Templates:

  • Corporate templates (standard and detailed)
  • Individual templates (sole proprietor, freelancer)
  • Language-specific templates (Python, HTML, Shell)
  • Creative Commons and Mozilla Public License examples

See the template-examples.json file for a complete list of examples that you can copy into your configuration.

Performance & Background Operation

Smart Caching

The extension uses intelligent caching to optimize performance:

  • File analysis results are cached for 30 seconds
  • Files with existing copyright are processed faster
  • Reduces unnecessary re-analysis during editing

Configurable Delays

  • Background Update Delay: Configurable pause before applying changes (500-10000ms)
  • Smart Debouncing: Automatically adjusts delay based on file activity (1x-5x multiplier)
  • Debounced Processing: Prevents excessive processing during rapid typing
  • Optimized Timing: Balances responsiveness with performance for different file types

Silent Operation

  • Zero Interruptions: Works invisibly in the background
  • No Notifications: Unless explicitly configured otherwise
  • Seamless Integration: Doesn't interfere with your workflow

Adding copyright notices to your source code:

  • Establishes ownership of intellectual property
  • Helps with licensing compliance
  • Makes attribution clear in open-source projects
  • Provides legal protection for your code

Installation

From VS Code Marketplace

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "Copyright Notice Generator"
  4. Click Install

From VSIX File

  1. Download the .vsix file from the Releases page
  2. In VS Code, go to Extensions (Ctrl+Shift+X)
  3. Click the "..." menu and select "Install from VSIX..."
  4. Choose the downloaded .vsix file

Building from Source

# Clone the repository
git clone https://github.com/bivex/bivex.copyright-notice-0.1.0.git
cd bivex.copyright-notice-0.1.0

# Install dependencies
npm install

# Package the extension
npm run package:win    # Windows
npm run package:unix   # Unix/Linux/macOS
# or
npm run package        # Direct vsce command

See scripts/README.md for detailed packaging instructions.

Testing & Diagnostics

The extension includes comprehensive testing tools for validation:

# Run background mode tests
node tests/background_mode_test.cjs

# Run smart debouncing tests
node tests/smart_debouncing_test.cjs

# Run diagnostic analysis
node tests/diagnostic_test.cjs

# Run pattern recognition tests
node tests/pattern_test.cjs

# Run exclusions demonstration
node tests/simple_exclusions_demo.cjs

Diagnostic Features

  • File Analysis: Comprehensive copyright detection analysis
  • Configuration Validation: Settings verification
  • Performance Monitoring: Cache and timing diagnostics
  • Error Reporting: Detailed error analysis and reporting

Requirements

For Users

No additional requirements or dependencies needed.

For Developers

  • Node.js (https://nodejs.org/)
  • npm or yarn
  • VS Code Extension Development Host (included with VS Code)

Known Issues

None currently reported. The extension has been thoroughly tested with comprehensive diagnostics and performance optimizations.

Troubleshooting

If you encounter issues:

  1. Check VS Code developer console (Help โ†’ Toggle Developer Tools)
  2. Run diagnostic tests: node tests/diagnostic_test.cjs
  3. Verify your configuration settings
  4. Ensure VS Code is updated to the latest version

Please submit issues on our GitHub repository.

Release Notes

1.1.1

Major performance and usability improvements:

  • Added: Silent background mode for unobtrusive operation
  • Added: Smart debouncing with adaptive delay management
  • Added: Folder restriction controls for targeted application
  • Added: Comprehensive default exclusions (node_modules, .git, dist, etc.)
  • Added: Inactive file detection for immediate copyright updates
  • Added: Configurable background update delay (500-10000ms)
  • Added: Smart caching system for improved performance
  • Added: Advanced document opening handler
  • Improved: Copyright detection with confidence scoring
  • Improved: Comprehensive file state analysis
  • Fixed: Module loading issues for better VS Code compatibility
  • Added: Detailed diagnostic and testing tools

1.0.1

Bug fixes and new features:

  • Fixed: .ahk2 files now work properly even if VS Code doesn't recognize the language ID
  • Added: File exclusion patterns to prevent copyright notices on specific files (e.g., *.json)
  • Improved: Extension now works if EITHER language ID OR file extension is enabled (not both required)
  • Added: Support for glob patterns in file exclusions

1.0.0

Full release with multiple improvements:

  • Added timestamp support for creation and update times
  • Added manual command to apply copyright notices
  • Added file extension filtering
  • Multiple predefined templates
  • Improved formatting and error handling

0.1.0

Initial preview release