Files Templates


nexss file list # list files for actual project (the same as nexss f l)
nexss file add # add file with selection

# Predefined templates (which appears on the list) are passed without extension:
nexss file add myfile.js --template helloWorld 

# Absolute paths needs to have extension:
nexss file add myfile.js --template c:\templates\template1.js 

nexssProgrammer-SelectTemplateExampleCLI

File Templates - Languages configuration

Languages configuration are in the c:/Users/\<yourusername>/.nexss/languages/

Sometimes template file needs extra libraries or files or commands to run. You can do this by creating the file (as example below) and specify:

  • files: Array ["folder/file","file.ext"] - files to copy
  • commands: Array ["mv source dest","ps"] - commands to run after files are copied
  • repos: Array this is just to keep repositories (nothing is run)
  • descriptions: Array - displays messages after file is added

Example: Template is name Default.ahk, so below file with config for the template is called Default.ahk.js

const config = {
  files: ["3rdPartyLibraries/JSONParser.ahk"],
  commands: ["ls -la","some second command"],
  repos: ["https://github.com/dbohdan/jimhttp"],
  descriptions: [
    "This information will be displayed after all files are copied and commands run."
  ]
};

module.exports = config;

You also can use conditions like below: (example of Elixir language):

const config = {
  files: ["mix.exs"],
  commands: [
    "IF exist src (cd src && mv mix.exs ../mix.exs && cd ..) else ( mix deps.get)"
  ],
  repos: [],
  descriptions: [
    "!!! You may see some warnings at the very first run of your Elixir program."
  ]
};

Writing own Templates - Default and HelloWorld

Nexss Programmer uses JSON as interchange format between languages. To use fully Nexss Programmer features like Nexss Programmer projects programming language needs to have: Default and HelloWorld. (Most of the Nexss Programmer's languages already have implemented)

  • Default - Just passing data and adding extra item in JSON "test" with value of "test"
  • Hello World - Adding field HelloFrom: Version of the language

Development and Test of the Default and Hello World templates

Default

# Default
nexss file add myfile.cpp --t=Default # This creates file from template Default
nexss myfile.cpp # and this should give kind of output (below C++):
{"start":1578507572953,"cwd":"C:\\xdata\\1\\1234","debug":true,"_":[],"outputCPP":"Hello from C++ 17!"}

HelloWorld

More characters to test nexss myfile.cpp --test and output will be with a lot of unicode characters:

image

If you are happy with the template copy the myfile.c to the c:\Users\[yourusername]\.nexss\languages\YourLanguage\templates\