Coder Social home page Coder Social logo

mewbak / gide Goto Github PK

View Code? Open in Web Editor NEW

This project forked from goki/gide

0.0 2.0 0.0 3.76 MB

gide is a flexible IDE framework in pure Go, using GoGi gui

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.71% Go 99.05% Shell 0.24%

gide's Introduction

gide

alt tag

Gide is a flexible IDE (integrated development environment) framework in pure Go, using the GoGi GUI and the GoPi interactive parser for syntax highlighting and more advanced IDE code processing.

See the Wiki for more docs, Install instructions (just standard go get ...), and Google Groups goki-gi emailing list.

Go Report Card GoDoc Travis

After all these years, nothing beats a great text editor for coding. Every attempt at more "visual" or structured forms of programming haven't really caught on (though the IDE and GUI-augmented editor can give you the best of both worlds).

And nothing beats coding for efficiently doing just about anything you want to do, whether it is data analysis, AI, etc (and obviously for "regular" coding).

Even writing documents is best done in a markup language (markdown, LaTeX, etc), and needs a great text editor. In short, virtually your entire workflow as a scientist, researcher, etc depends on the same core functionality.

But does the world need yet-another-IDE? Probably not, but at one point we thought it was on our critical path for developing our mission-critical emergent neural network simulation environment, so here it is!

Some of the main current / planned features of Gide include:

  • Pure opensource Go (golang) implementation, built on top of a Go-based cross-platform GUI framework: GoGi. Go means you can read and understand the code, and it compiles in seconds, so if you want to customize or fork to make your own personal favorite IDE, this could be a good starting point!

  • Designed from the ground up to handle a wide range of use-cases, from core coding to scientific computing to writing documents, etc. Handles heterogenous file types all mixed together in a given project, supports customizable commands that can be associated with different file types, etc.

  • Centered around a FileTree-based file browser on the left, which supports full version control and standard file management functionality etc. The plan is to make this a highly useful but still simple and straightforward file browser interface that can handle all the basic tasks.

  • Command actions show output on a tabbed output display on the right, along with other special interfaces such as Find / Replace, Symbols, etc. Overall design works well without having to constantly move widgets and panels around, although we'll have to see how well it scales.

  • Very keyboard focused, and especially usable with standard Emacs command sequences -- emacs users will feel very at home, but also perhaps excited to have a more complete GUI experience as well. Everything is customizable to fit whatever framework you're familiar with (and file tickets if we can me it better).

  • The original plan was to add functionality comparable to JupyterLab and other such scientific computing frameworks (nteract, R studio, etc), where you can easily pop up advanced 2D and 3D graphics, and powerful interactive GUI interfaces to all manner of data types and structures. Not sure if that will actually happen...

Current Status

As of 11/2018, it is fully functional as an editor, but many planned features remain to be implemented (still true as of 6/2019 -- will get back to it after all the other higher-priority stuff :)

Basic editing and tooling for Go, C, LaTeX, Markdown is reasonably functional and solid. It is fully self-hosting -- further development of Gide (and GoGi etc) is happening within Gide!

Near-term major goals (i.e., these are not yet implemented):

  • Fix the FileTree to be rock solid. Currently has a few issues..
  • Support for delve debugger for Go. Then lldb after that maybe. And see about python debugging.
  • Extend the GoPi interactive parser to handle Python and maybe C / C++, so it will have been worth writing instead of just using the native Go parser.

Maybe / maybe not:

  • Jupyter Lab / nteract level functionality. How hard would it be? Probably need to get GoGi plugged in as a backend to matplotlib etc -- could be a big job..

Feel free to file issues for anything you'd like to see that isn't listed here.

Screenshots

Screenshot

Screenshot, darker

gide's People

Contributors

rcoreilly avatar rohrlich avatar

Watchers

 avatar  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.