Skip to content
No description or website provided.
Java
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

About

This intellij plugin should some day evolve to a plugin API where the GUI part runs in a browser and the plugin itself can be written in Ruby/Javascript/HTML/CSS and loaded dynamically.

Plugin Brainstorming

Snippet Plugin

  • annotate code (lines ?)
  • serve snippets from GIT ? -> git VFS
  • search snippets (name, content, language ...)
  • link to source repository (revision, line)
  • insert placeholders/variables which are evaluated by the IDE
  • publish on pasties/gists
  • snippet creation notifications: twitter, jabber, email, google+, RSS ...
  • ruby API gem
  • optional per project configuration (recipients ...)?

Snippet Server

  • Rails, Elastic Search Plugin

Example plugins

eSnippet, Gist Plugin

Support repositories

SWT Snippets, Gists, Pasties ...

Technologies

  • Ruby SWT
  • SWT/AWT Bridge to embed webkit browser
  • jquery backbone.js ...

Ruby Plugin API Design

  • define the objects you are working with
  • define the contexts that are available
  • define the actions which are possible in a specific context

Ruby Internal DSL Design

Principles

  • Deconstruct functional units
  • Cut down the crap
  • Make the Jump from brain to code smaller
  • Avoid common traps/failures
  • Build small DSLs and mesh them together

  • Create a template DSL file

  • Break that into tests

DSL Language Support

  • Method chaining (return self, maintain state in a single object)
  • Dynamic dispatching (using method_missing) to wrap other APIs
  • Closures, instance_eval, nested closures
  • Proxy Pattern
  • Macros (Methods that generate code) e.g: attr_accessor

DSL Examples

  • Active Records, Rails Templates, RSpec, Ambition, Foundry ...
Something went wrong with that request. Please try again.