All Projects → clojerl → Rebar3_clojerl

clojerl / Rebar3_clojerl

Licence: other
rebar3 Clojerl compiler plugin

Programming Languages

clojure
4091 projects
erlang
1774 projects

Labels

Projects that are alternatives of or similar to Rebar3 clojerl

Jquery.print
Easy to use, Element Printing Plugin for jQuery
Stars: ✭ 772 (+3256.52%)
Mutual labels:  plugin
Blueprintsound
A plugin for Unreal Engine 4 that surfaces sound-related functionality to Blueprint.
Stars: ✭ 6 (-73.91%)
Mutual labels:  plugin
Intellij jahia plugin
Jahia's definitions.cnd files syntax highlighting, code completion, and other amazing stuff
Stars: ✭ 19 (-17.39%)
Mutual labels:  plugin
Linktoselection
Allow your website visitors to deep-link to any selected page content
Stars: ✭ 5 (-78.26%)
Mutual labels:  plugin
Antilaby
AntiLaby plug-in for Bukkit
Stars: ✭ 6 (-73.91%)
Mutual labels:  plugin
Skpm
💎📦 A utility to build and publish Sketch plugins
Stars: ✭ 890 (+3769.57%)
Mutual labels:  plugin
Vue I18n
🌐 Internationalization plugin for Vue.js
Stars: ✭ 6,502 (+28169.57%)
Mutual labels:  plugin
Kafka Connect Elasticsearch Source
Kafka Connect Elasticsearch Source
Stars: ✭ 22 (-4.35%)
Mutual labels:  plugin
Showdown Htmlescape
Plugin for Showdown to prevent the use of arbitrary HTML and allow only the specific Markdown syntax.
Stars: ✭ 6 (-73.91%)
Mutual labels:  plugin
Vagrant Parallels
Vagrant Parallels Provider
Stars: ✭ 893 (+3782.61%)
Mutual labels:  plugin
Roundcube Removeattachments
Roundcube plugin to add an option to remove attachments from a message.
Stars: ✭ 5 (-78.26%)
Mutual labels:  plugin
Themeskinning
A library can easy to change your app's theme for android
Stars: ✭ 827 (+3495.65%)
Mutual labels:  plugin
Hyper Always On Top
Extension for Hyper.app to optionally keep window always on top
Stars: ✭ 16 (-30.43%)
Mutual labels:  plugin
Iro.js
🎨 Modular color picker widget for JavaScript, with support for a bunch of color formats
Stars: ✭ 796 (+3360.87%)
Mutual labels:  plugin
Sublimeallautocomplete
Extend Sublime autocompletion to find matches in all open files of the current window
Stars: ✭ 906 (+3839.13%)
Mutual labels:  plugin
Markdown Preview.vim
⚠️ PLEASE USE https://github.com/iamcco/markdown-preview.nvim INSTEAD
Stars: ✭ 764 (+3221.74%)
Mutual labels:  plugin
Idaskins
Advanced skinning plugin for IDA Pro
Stars: ✭ 832 (+3517.39%)
Mutual labels:  plugin
Figmiro Plugin
Figma Integration with Miro (Plugin)
Stars: ✭ 23 (+0%)
Mutual labels:  plugin
Wdl Ol
Enhanced version of Cockos' iPlug - A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported. NOTE: THIS IS OBSOLETE, PLEASE SEE IPLUG2:
Stars: ✭ 906 (+3839.13%)
Mutual labels:  plugin
Runconfigurationasaction
Provides a way to use IntelliJ run configurations as buttons
Stars: ✭ 17 (-26.09%)
Mutual labels:  plugin

rebar3_clojerl

Hex.pm

Compile clojerl projects

Use

Add the plugin to your rebar.config (along with clojerl as a dependency):

{deps, [clojerl]}.
{plugins, [rebar3_clojerl]}.

Then just call the plugin directly in an existing application:

$ rebar3 clojerl compile
===> Fetching rebar3_clojerl
===> Compiling rebar3_clojerl

To get a list of all available tasks for the plugin run:

$ rebar3 help clojerl
===> Compiling rebar3_clojerl

clojerl <task>:
  compile           Compile clojerl project
  escriptize        Generate escript archive.
  release           Build release of Clojerl project.
  repl              Start a clojerl repl
  run               Run the project's -main function.
  test              Test clojerl project

For each of these you can then get more details and available options by running for example:

$ rebar3 help clojerl repl
Start a clojerl repl
Usage: rebar3 clojerl repl [--apps <apps>] [--sname <sname>]

  --apps   List of applications that should be started separated by commas
           (e.g. --apps app1,app2,app3).
  --sname  Erlang node name.

rebar.config options

These are the available options:

Name Description
clje_src_dirs List of directories where Clojerl source is located (default: ["src"]).
clje_test_dirs List of directories where Clojerl tests are located (default: ["test"]).
clje_compile_first List of files that should be compiled first (default: []).
clje_exclude List of files that should be excluded from compilation (default: []).
clje_main String specifying either a fully qualified function or a namespace (e.g. "foo/main").

The first four are helpful for handling custom directory structure and/or compilation behaviour.

For example, if the Clojerl code was in src/clj instead of just src, the rebar.config should include the following entry:

{clje_src_dirs, ["src/clj"]}.

And if we wanted to have the file for namespace foo.bar compiled first we would also include the entry:

{clj_compile_first, ["foo/bar.clje"]}.

Plugin Development

Run the following commands to checkout the repository and build the plugin:

git checkout https://github.com/clojerl/rebar3_clojerl
cd rebar3_clojerl
rebar3 compile

Install globally

rebar3 also allows you to install plugins globally through its configuration file ~/.config/rebar3/rebar.config.

By adding the following entry in the global rebar.config you will be able to use the plugin to build your project or create a new one with the available template.

{plugins, [rebar3_clojerl]}.

Templates

When the plugin is installed globally you can use any of the available templates:

  • clojerl_app: create a Clojerl OTP application.
  • clojerl_escript: create a Clojerl escript.
  • clojerl_lib: create a Clojerl library.
  • clojerl_release: create a Clojerl release.

For example:

rebar3 new clojerl_app awesome

Building the generated application

Running rebar3 clojerl compile will build the application.

Application name

Because of how Clojerl (and Clojure) processes dashes for namespace names, and current limitations of the templating mechanism, you can't include dashes in your application's name. It's sad, I know. :(

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].