GithubHelp home page GithubHelp logo

clode's Introduction

CloDE

ClojureCLR Development Environment (currently running on .NET 4.0)

Introduction

This is a very early alpha version I created some month ago and since then never touched. Basically not munch of an architecture. I'm getting used to clojure ... My goal is to write all code in clojure to be easily modified at runtime from the system REPL. Perhaps with some sort of custom *.cs project compilation, either by using Roslyn or by just calling into csc.exe or MONOs mcs.exe. Atm. there is some pain related to Generics. As I'm getting more used to Clojure-CLR I'll start replacing the code from Clode.Extensions with clojure code. There are no graphical commands in the GUI right now. Only some very few from the REPL (no file saving)

Basic Concept

CloDE loads its contents (views, controls, themes) from xaml dynamically (with all related quirks). It's dived into modules with an init function being called from clode.clj. So it's a monolythic approach right now until I have the basic features working as I want them to be.

Features

Almost all features are somewhat quirky, mostly proof of concept and have to be refactored

  • Theming
  • Code editor (AvalonEdit)
  • A very hackish like System-REPL (AvalonEdit based, namespacing issues). Can show images from the image subfolder. The pattern #img "filename" gets replaced by avalonedit.
  • Command History up-down (STRG-UP, STRG-DOWN) (a minor bug in there at the corner cases)
  • Property Grid

Dependencies

I'm running a x64 Win7 so you may have to adjust the path from boot.clj to meet your installations

If you wanna play around with the monocecil bindings you have to download and extract ILSpy into dependencies/package-path/ILSpy and uncomment the according references from boot.clj

nleiningen basically works, but I decided to stick to the dependencies.clj right now. I'm planning to extend and integrate nleiningen.

Preparation

  1. Installing the Expression SDK
  2. Compile Clode.Extensions (enable NuGet Package Restore on the Solution, before compiling)
  3. Clojure.Main.exe -m dependencies

Running

Clojure.Main.exe -m clode Shell_Complete.xaml CloDE will pull down

I have to register the dynamically loaded xaml controls in order for wpf/find-elem to work, or rewrite it to use another approach. Then I can use a modular approach. Maybe should have a look at some MVVM framework.

Goals

General

  • Have fun!
  • Have fun!
  • Have fun!
  • Create the best Shell Environment written in ClojureCLR

Short Term

  • Enhanced fully functional REPL with nREPL support
  • Implement Logging
  • Basic Editor Features to use CloDE for developing CloDE
  • Figuring out an extension architecture to easily plug into
  • nLeiningen/nuget dependecy management (project.clj)
  • Split functionality into packages and make them available from nuget
  • Module Browser
  • TestRunner

Long Term

  • Live Coding Environment (inline results from eval)
  • Adopt common IDE features from vsClojure and other Clojure IDEs (Debugger, Code Completion, Code Navigator)
  • Alternative Readers Sources (Database, ZIP, Dropbox ...)
  • Create a hosting API for other services (Roslyn, F#, Ironscheme, IronPython, PowerShell, ...)
  • Make it CrossPlattform
  • Create UI Bindings for running on other OSes (MacOS and Linux)
  • (integrate into Xamarin.Studio, SharpDevelop)

Some other Ideas

  • All sorts of WYSIWYG text markup/documentation editors like Markdown, AsciiDoc or DocBook

clode's People

Contributors

schuster-rainer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.