Coder Social home page Coder Social logo

antonvolkoff / kosmos Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 3.0 1.78 MB

Graphic development environment for Clojure

Home Page: https://kosmos.antonvolkoff.com

License: MIT License

HTML 5.36% TypeScript 77.34% Dockerfile 0.07% Shell 1.62% JavaScript 3.65% Clojure 11.96%

kosmos's People

Contributors

antonvolkoff avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kosmos's Issues

Show labels on edges

Problem

For some file formats, it's quite important to be able to label edges.

Hide/show transcript panel

Add a button to the control panel that will toggle the transcript panel. A keyboard shortcut should be connected to the transcript panel toggle. A user should be able to toggle the panel via an application menu.

Select multiple atoms

There should be three ways to select multiple items.

  1. Hold Shift and click on atoms to select
  2. Hold Shift and move around atoms with Option+Arrow Keys
  3. Draw a select shape around atoms.

When atoms are selected, you should be able to move selected items around or delete them together.

I can't delete edge between nodes

Problem

Currently, Kosmos editor provides no way to disconnect two nodes.

Solutions

  1. Remove edge by crossing an edge line with a pen.
  2. Select an edge by clicking on it and press backspace to remove.
  3. Select two nodes and have UI buttons to connect or disconnect nodes.
  4. Separate mode for removing. Like an eraser in drawing software.

Clojure parser issues

Current implementation does not support few Clojure notations.

Here is a file example that is not supported by kosmos:

(defn num->str [n] (str n))

(defn lookup [^js/HTMLDocument doc id]
   (.getElementById doc id))

It will complain about -> and ^js/HTMLDocument.

Drawing on a canvas

Problem

With the release of v20.2 I have killed drawing mode, which I am missing.

Track changes

  • Think about the way to track changes
  • Show * when canvas has changed
  • Show notification about closing unsaved changes
  • Add undo/redo operations

Plan for May 2020

General

  • Open source Kosmos
  • Better performance with a big number of elements on a canvas
  • Load Clojure files into Kosmos (Experiment)
  • Undo/redo manipulations #6
  • File format (Experiment)
  • Good enough drawing experience

UX/UI

  • Adjust the distance between atoms when typing #10
  • Switch between ready, enter, edit and connect modes
  • Show hide transcript panel #4
  • File/namespace navigation #18
  • Create coding layers
  • Copy/Cut/Paste atoms #7
  • Disconnect atoms
  • Copy/paste text inside atoms
  • Multiple atoms select

iPad

  • Create a prototype of an iPad application

Copy / Paste / Cut atoms

  • Copy/Paste/Cut with standart keyboard shortcuts
  • Copy/Paste/Cut from application menu

Unsolved question:
How to treat linked atoms?

Support for DOT files format

Problem

I like to sketch/mindmap my idea and solutions to problems.

Solution

Support DOT as it is a nice way to store and visualize graphs.

References

DOT specs

Add color to nodes

Problem

Iโ€™m missing a color-coding of nodes. It really helps to read text better when things are color-coded.

Plan 2020

Mission:

Assist in the creation of the future

Goals

  • Kosmos application can be used for a daily work
  • iPad application is released in Appstore

Support text files

Problem

At the moment I can only open Clojure files, but most of the projects usually contain other formats.

Solution

Open all unknown files as text. Display them as one node with all text inside of it.

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.