cs50 / harvard.cs50.simple Goto Github PK
View Code? Open in Web Editor NEWA plugin for CS50 IDE (and, in turn, Cloud9 IDE).
A plugin for CS50 IDE (and, in turn, Cloud9 IDE).
When terminal is focused after an unsaved tab is closed, "unsaved" warning is still triggered.
@harianbarasu
There's this weird behavior of having 4 dialog boxes appearing for each open terminal tab as a result of executing the following command in each terminal tab:
c9 exec cs50updateProfileScripts
screencast:
cs50updateProfileScripts.zip
Problem is that while I'm able to reproduce that on cs50.io, I can't reproduce on c9.io or CS50 IDE offline, even though apparently having the same version of simple installed. still investigating this, but thought you might have an idea of what's going on (you added these lines per git blame?).
Also are we sure this is the best way to source profile
and .bashrc
in all the terminal tabs? Good user experience? Can we execute this command somehow without activating the tabs?
Asking because another thing that I noticed is, in case multiple terminals are open, and I execute c9 exec cs50updateProfileScripts
(or e.g., update50
) in one of them, I may end up having another terminal tab focused (as per the screencast).
(working on this already and will push a fix and answer these questions here as soon as I figure things out; just mentioning you, so that we can avoid duplicating efforts, in case you have an idea)
Almost done refactoring. Right now we have two "Log out" buttons, one of which seems to redirect to the correct login page (respective to cs50.io or c9.io), and the other seems to always redirect to c9.io.
The first one is CS50 IDE > Log out
and the second one is under the user's menu
Furthermore, the one under CS50 IDE unnecessarily appears offline, so I'm going to remove that, but aside from this, only one of them is enough? If so, which one do you think better stays?
when unchecking "View > Tab Buttons", the bar holding the tabs is completely hidden leaving out the tree toggle button. it's easy to toggle the visibility of the button when that menu item is toggled of course, but then there would be no way to toggle tree visibility with a mouse, in case the button is hidden. thoughts on where to relocate/alternative solutions? @dmalan @danallan
Given Cloud9's default behavior of showing a "Native Clipboard Unavailable" error when copying text in the IDE, the updateProfileScripts()
function displays four dialogs for every open terminal when executed. Is there some way to suppress these messages, @harianbarasu, without relying on the user having previously selected "Don't show again"?
Below are examples. It displays these dialogs twice, with slightly different information displayed in the latter on the second time.
The impact is that, running c9 exec cs50updateProfileScripts
in update50
will display 4 errors for every open terminal window. Checking the "Don't show again" box will prevent it from happening on subsequent c9 exec
s, but it still displays all queued dialogs if it was previously unselected before the current run.
For now I've disabled the c9 exec
in update50 until we find some way of suppressing. @harianbarasu @dmalan
Students occasionally accidentally paste big chunks of text into their terminals (instead of code tabs) by accident, which can trigger accidental commands to execute.
Possible to detect when text is pasted into a terminal window and that text contains \r
or \r\n
or \n
so that we can prompt with "Are you sure you want to paste n lines into your terminal window?"
Now that simple's changes are live, I've noticed that the Gravatar icon is not being swapped for the C9 logo. The preference panel to do the switch doesn't appear, either. Looking at setIcon()
, it's obvious why: either the user
object has some issue, or it's not finding the login menu.
Poking around a bit seems to reveal that there's nothing special about my account as user
is populated as expected. It seems likely that this is a race condition: simple is being loaded before the login plugin, and the menu therefore doesn't (yet) exist when setIcon
is run.
We cannot simply add login
to consumes
to force proper order, however, because this causes the offline IDE to break (I tried it: login
does not exist in the offline IDE). We may need some other method to find the menus.
One possible hacky solution would be to detect if it's an online or offline IDE, and if online, use setTimeout
to wait some number of seconds and try again, retrying until it's found. Any better suggestions, @harianbarasu?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.