Skip to content
/ codedox Public

Extension for Visual Studio Code that helps Haxe developers document their code.

License

Notifications You must be signed in to change notification settings

vshaxe/codedox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Aug 28, 2022
708304e · Aug 28, 2022

History

84 Commits
Aug 26, 2022
Apr 12, 2018
Aug 24, 2022
Feb 17, 2017
Jan 1, 2020
Jan 1, 2020
Aug 24, 2022
Aug 24, 2022
Jan 1, 2017
Aug 26, 2022
Mar 6, 2017
Mar 29, 2020
Aug 10, 2022
Aug 10, 2022
Jul 9, 2018
Apr 14, 2018
Aug 28, 2022
Aug 28, 2022
Jul 9, 2018

Repository files navigation

Codedox for Haxe and Visual Studio Code

Current Version CI

This is an extension for Visual Studio Code that helps developers document their Haxe code.

JSDoc style comments can be inserted including automatic generation of @param and @return tags. File headers can be inserted with customizable copyright and license comments, or you can choose from a variety of built-in license texts.

This extension is best used as a companion to vshaxe which provides Haxe support for Visual Studio Code.

Usage

  1. Type /* at top of file to insert a file header.
    • if no file header template has been configured then a simple setup wizard will ask a few questions and save the configuration
  2. Position cursor before a function declaration and type /** to insert a JSDoc-style comment.
  3. Position cursor before a variable or class declaration and type /** to get an empty JSDoc-style comment, then press enter immediately to get a multiline comment.

File header and JSDoc-style comments can also be inserted using commands. Invoke the commands using F1 or Ctrl-Shift-P/Cmd-Shift-P and typing Codedox: Insert ...

Features

Insert JSDoc comment

Insert JSDoc comment

On-enter rules

On-enter rules

Insert file header

Field completion

Setup 'Wizard'

A basic configuration can be created using the simple setup 'wizard'. This is triggered when typing /* at the top of a file for the first time, or by running the setup command using F1 or Ctrl-Shift-P/Cmd-Shift-P and typing Codedox: Setup ....

The wizard will ask:

  1. Where you want the configuration saved (user or workspace)
  2. Which of the built-in license templates you want to use (if any)
    • GNU Affero General Public License
    • Apache License, Version 2.0
    • GNU General Public License, Version 3.0
    • MIT License
    • Mozilla Public License, Version 2.0
    • Simple copyright
  3. A company/author name to include in your copyright.

Advanced Configuration

Most Codedox settings are optional, and all required settings can be generated by the setup wizard. If you want use a built-in license template or simple copyright then just run the setup wizard and skip this section.

If you want to create a custom license/copyright template or want to change how the comments look, then you can cut and paste the following into your user or workspace settings file (.vscode/settings.json) and customize as needed. A list of built-in parameters that can be used in your custom templates is also listed below.

{
  "codedox": {
    "autoInsert": true, // enables insertion of function comments trigged by keystrokes
    "autoInsertHeader": true, // enables insertion of file header triggered by keystrokes
    "autoPrefixOnEnter": true, // enables 'on enter' rules
	"paramFormat": "@param ${name} ",  // supports ${name} and ${type}, plus built-in params
	"returnFormat": "@return ${type}", // supports ${type}, plus built-in params
	"allowOptionalArgs": false, // false strips the '?' prefix from optional function args
	"alwaysMultiline": true, // if false non-functions (types) are single line
    "commentprefix": " * ",
    "commentbegin": "/**",
    "commentend": " */",
    "commentdescription": "[Description]",
    "headerprefix": "*",
    "headerbegin": "/*",
    "headerend": " */",
    "fileheader": {
      "params": {
        "*": {
          "company": "My Company",
          "author": "Wiggin"
        }
      },
      "templates": {
        "*": [
          "${headerbegin}",
          "${headerprefix} Copyright (c) ${year} ${company}",
          "${headerprefix}",
          "${headerprefix} Author: ${author}",
          "${headerend}"
        ]
      }
    }
  }
}

Built-in parameters:

Param Result
${name} variable name (function comments only)
${type} variable or function type (function comments only)
${fname} name of current file
${fspec} absolute path and name of current file
${frel} path and name of current file relative to workspace
${year} 2017
${month} 1
${day} 2
${timestamp} 2017-01-02 15:17:40
${time24h} 15:17:40
${date} 2017-01-02
${time} 3:17:40 PM
${license_agpl_3_0} GNU Affero General Public License
${license_apache_2_0} Apache License, Version 2.0
${license_gpl_3_0} GNU General Public License, Version 3.0
${license_mit} MIT License
${license_mozillapl_2_0} Mozilla Public License, Version 2.0
${license_none} Simple copyright

Notes

  • If you do not want an asterisk preceding each line of a comment, replace the commentprefix property with two spaces (" ").
  • If you prefer only one space before each line of a comment, replace commentprefix with asterisk plus one space ("* ").
  • Feature requests, comments, etc, are welcome.