GithubHelp home page GithubHelp logo

dschaefer / eclipse-two Goto Github PK

View Code? Open in Web Editor NEW
92.0 30.0 10.0 288 KB

A prototype IDE based on Electron

License: Eclipse Public License 1.0

HTML 1.04% JavaScript 3.44% CSS 8.35% TypeScript 87.17%

eclipse-two's Issues

Create a reusable Browser class

I am working on adding forward and back buttons and location text form for the Github Page. It would be good to have this browser "chrome" available for other pages as a reusable element.

Github Open In Eclipse Two

For the Github page, we're currently injecting javascript in the webview preload that changes the Open in Desktop to Open in Eclipse Two. We need to implement a click handler for that button that will kick off a git clone of the repo and bringing the working directory into the FileExplorer. We'll need a dialog that at least asks the user for the destination of the clone. We may want to offer other choices as well.

Implement Save for the editors

Right now all you can do is open files to look at them and then close the tab. Would be good to implement save so you can save changes (yes, we're that early in this thing). Start with grabbing the Command/Control S key action and save the contents of the currently active editor into it's filePath. Also implement a dirty bit so we don't save if there hasn't been changes and so that we don't close the tab if the editor is dirty without asking the user.

What's a project? workspace?

After years of struggling with the Eclipse resource management model, I'd love to keep that fight out of Two. Text editors like VS.Code somewhat have done away with formal projects and things seem to work OK. Though things may be at the workspace level now.

My original thinking and what I have in the FileExplorer is the idea of mount points. You mount one or more directories from the file system as root nodes in the file tree. And that mainly done to reduce noise and leave off directories you don't plan on working in.

Question is, how do we do some of the things we got used to when we had projects in Eclipse. Things like inter project dependencies, or per project build and indexing settings.

I think those things could be done on the folder level. Extensions could analyze the files that exist in the tree under a folder and apply semantics at that level. I'd like to add an editor for folders that shows details about the files but that is also extendible to allow management of folder level settings. Github kinda does this showing the README files for a folder.

Anyway, not sure how this would really work. Need some real world experience with it. Any advice from anyone would be appreciated.

cannot install types\three

Ran npm install just after cloning and received this failure:

npm http 404 https://registry.npmjs.org/types/three
npm ERR! 404 Not Found
npm ERR! 404
npm ERR! 404 'types/three' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 It was specified as a dependency of 'eclipse-two'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\ProgramData\chocolatey\lib\nodejs.commandline\tools\node.exe" "C:\ProgramData\chocolatey\lib\npm\too
ls\node_modules\npm\bin\npm-cli.js" "install"
npm ERR! cwd G:\proj\eclipse-two
npm ERR! node -v v5.10.1
npm ERR! npm -v 1.4.9
npm ERR! code E404

React, or VanillaJS+TypeScript+CustomElements?

I did have a start of this using React because that's what I was familiar with and it seemed a reasonable framework to pick. I have been hesitant to pick any framework since we really need to look 10 years ahead and make sure we're future proof.

I also started running into issues with the architecture of React versus what I'm used to with Eclipse SWT and it's event-based model. React is good at generating UI from a data model, but I'm not sure that's what the foundation of an IDE is. React may be interesting for some IDE views that are more data centric, and that can be done with the the help of Chromium's webview.

Over the last week, I've switched to using plain VanillaJS and TypeScript and am pretty happy with it. It's forced me to learn CSS which isn't as scary as I thought. I am also using custom elements from the Web Components spec to componentize the UI so I have a similar architecture to what I had with React. I will be adding custom events for higher level notifications like a request to open a file in the editor. We'll see how that works out.

Once I get back to where I was with React, I'd like to make the switch and remove the React code. I'd love to hear from others following this project on whether that's the right move or not. Thanks!

Create reusable tab folder type thing

The Pages are implemented with a nav bar that pick the changes. As I then went to do the editor tabs, I'm realizing that they are actually the same thing. All I'm changing is the formatting and adding a close button on the tab. This should be in a common superclass.

Project scope/differentiation

Just throwing this out there for discussion: How is this project different from Orion and/or Eclipse Che? Is there overlap? Is this a completely different approach? How does it fit into the space of other tools out there?

[Help Wanted] Monaco doesn't resize

When you change the size of the window or move the splitter, the Monaco editor doesn't resize.

BTW, great issue if someone wants to jump in and help ;)

Cannot read property 'config' of undefined in Monaco.ts

Hey there,

found an strange error in Monaco.ts.

loader.require.config({
    baseUrl: baseUrl
});

This line of code does not allow to start eclipse-two respectively gives an error in the dev tools and the editor cannot start.
image

After removing this line all works fine.

Hope I could help :)

Greetings

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.