GithubHelp home page GithubHelp logo

cm's Introduction

Build Status

cm

WARNING! The application is in an active development state and is not even alpha yet. Use it at your own risk. Nothing is documented, anything can be changed at any moment or stop working at all.

The goal of this application is to recreate the compilation-mode of Emacs as a standalone TUI application.

Build

Dependencies

Workflow

$ cargo build
$ ./target/debug/cm 'grep -rn String src/'

Usage

Default Shortcuts

Shortcut Description
j or Down Move cursor down
k or up Move cursor up
Alt+j or Alt+Down Move cursor to the next match
Alt+k or Alt+Up Move cursor to the prev match

Rest default shortcuts are TBD

Application layout

TBD

Configuration file cm.conf

TBD

Self-recurring

Examples

Searching with grep

asciicast

Fixing compilation errors

asciicast

cm's People

Contributors

aodhneine avatar catull avatar et342 avatar gkbrk avatar pudnax avatar rexim avatar rx80 avatar travisstaloch avatar uspasojevic96 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  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  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cm's Issues

More demos are needed

This project is already in a state that it could be used by other people daily. However, it really lacks demos show how powerful it is and how it can be used.

This could be kind-of tracking issue for the lacking demos that could be added to the documentation.

  • Fixing compilation errors
  • Navigating big codebase
  • Interactively removing files

If there is anything more that comes to your mind, please post it in comments!

Note
If you create pull request with new demo, make sure to mention this issue in PR description. It will make it easier to track the progress.

cm does not handle input from stderr

A lot of utilities that output useful for cm information usually do that to stderr. Which leads to necessity of constantly doing 2>&1 (see https://asciinema.org/a/337846). This is very convenient.

Proposal

Replace the current workflow of

$ gcc -o main main.c 2>&1 | cm

with

$ cm gcc -o main main.c

In this case cm should start the command as its child process and collect both stdin and stderr.

Downsides

It's unclear how to do something like this

$ gcc -o main main.c | grep <pattern> | cm 

Possible solutions:

  • implement our own piping support
  • support both workflows in case you need to cm complex piping output

First Experience Tutorial

We can easily detect that the user is running the program for the first time by the lack of the config. In that case we can play a small simple tutorial that walks the user through the feature of the program.

Crashes if input from stdin is empty

grep -R "nyanpasu" src/ | cargo run

Current behaviour
Program crashes with

thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', src/ui.rs:85:10
                                                                                                 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Expected behaviour
Programs exists with nice error message, like No input provided!.

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.