Writing a Editor like Notepad++ - syntax-highlighting

I think this is a project in future though not very near (I have other project I'm working on) but as I always do, I love to ask questions and get clear view of what is facing me and may be slowly learn some useful things. I am a fan of netbeans (Because so far is the only IDE that can meet my need) for PHP coding but it is very resource hunger. MAC people are blessed with Nice IDEs like Coda, TextMate et al. I though in future I would code an IDE and if thing goes wel I may well sell it :)
Now My question is, what one needs to know to code such an editor?
I know how to make GUI and events interaction in wxWidgets and I know there is wxSTC for making editors but I lack general knowledge of what is needed to make full fledged PHP editor (adding there by Javascript/Html support).
Google didn't help much, may be I'm using wrong keyewords
Thanks for direction and/or help

I went with wxSTC. The Wiki docs were helpful to start with, then scintilla docs and finally wxSTC Docs at yellowbrain are wonderful!

Related

Is there an IDE that provides code completion for Cappuccino

I have tried almost every IDE listed here, but none of them provide code completion.
As a Flex developer I am used to code completion in Flash Builder. It saves tons of time and helps with spelling errors.
Does anybody know about IDE with code completion for Cappuccino? Is is difficult to create, or it is simply not as important for everybody as it is important for me?
Our company is gonna use Cappuccino heavily, and thus I don't mind to ask one developer to volunteer and create some kind of Eclipse plugin. Just let me know, how important it is and how difficult it would be.
There's no full IDE support that I know of, but several text editors have support. Coda ships with it, and there exist textmate and sublime text plugins (Several of the core team members use Sublime, and I hear it's pretty good.) https://github.com/aparajita/Cappuccino-Sublime
Also, unfortunately, the website is a pretty poor resource for finding relevant content, it works for some old stuff that hasn't changed (like the tutorials), but things like debugging and editors the info is almost certainly out of date because of how rapidly these things are changing.

Are there any Mac OS code editors that support code auto-formatting (a.k.a. beautifying)?

So far I'm really impressed with Espresso, but it doesn't seem to offer any auto-formatting (by which I'm spoiled by Visual Studio). Are there any general code editors for Mac that support this? Specifically I'm interested in PHP and JavaScript, but curious to know about any options that might exist.
I've found Dreamweaver to be a great development platform on the Mac for PHP and Javascript. I'm not sure if you have access to it, but if it is a possibility, at least give it a test run. It does code highlighting, etc. that makes it much easier to code. The price, however, does make it a problem for most people.
In that case, you could try BBEdit. I've heard good things from people who would know but I personally have not used it (I have Dreamweaver through my company). It does auto-complete and a bunch of other nice things. It only costs $99 so it isn't too bad. Here is the link to the site:
http://www.barebones.com/products/bbedit/
I like TextMate. It’s powerful and inexpensive.
I may have found a good one from this answer, Aptana Studio. Looks like it's free/open-source, multi-platform, and supports code formatting for things like JavaScript and PHP.
I'll try it out and post back the results!
Update: While the app is okay and does offer some handy formatting, it's unfortunately clumsy and has some really annoying interface behavior (like code completion that won't go away and appears at the worst possible times) and a horrible options dialog, so it's not an ideal solution.

Xcode 4 Real-time collaborative editing

I really love the look and feel of the new xcode (4). But, a friend and I wanted to see if there is any way we can do collaborative real-time editing (http://en.wikipedia.org/wiki/Collaborative_real-time_editor). Just like what you see when you use Google Docs to edit a word document with someone.
Also, could/is there (be) a plug in that should work with xcode for Real-time collaborative editing? Or anything of the like?
Thanks for the post back,
Throdne
As far as I know, there is no way to do this and since Xcode doesn't really support plugins, there is no way of live collaboration in Xcode. I would suggest to use Sub Etha Edit. As an editor for Objective C, it's obviously not as great as Xcode, but still, it does a pretty decent job and might serve you well in your setup.

How to get involved in development of Mozilla Firefox?

I am a CS grad student, and I am interested in spending some spare time in getting involved with development of Mozilla Firefox web browser . I would like to contribute to HTML renderer , JavaScript engine etc. But I don't have any solid experience in writing parsers or similar stuff, and I don't have any clue from where to start.
There are of course some links in https://developer.mozilla.org/En/Developer_Guide/ but since Firefox is already is very huge project, I don't know from where I should start learning.
So, my question is what core things I need to learn first to get started with Web browser Development and from where I can learn this (any links)? Do I have to revise how to write parsers/compilers? How do I learn to write HTML renderer/ JavaScript engine? Is it even possible considering they are already very huge projects? Sometime back, I downloaded source code of V8 JavaScript engine (http://code.google.com/p/v8/) but I couldn't understand much from it's source code as it was highly optimized code, and there were no much useful comments for beginner like me to understand what going on.
Update:
I am fairly comfortable working with C, C++, Java, PHP, C#, VB.Net, JavaScript and I am more interested in learning how web browser parses an web page, how it constructs and maintains the DOM, how CSS is applied, how HTML reflow engine works, how it interacts with JavaScript engine, how it interacts with web server, how the components are drawn on the screen etc.
Read the docs on getting started. Hang out on irc.mozilla.org in #developers and watch for interesting conversations. Introduce yourself in #introduction and ask questions. Go to http://bugzilla.mozilla.org and start searching for open bugs in components that sound interesting, then look for bugs that catch your fancy. Use tools like http://mxr.mozilla.org/ and http://dxr.mozilla.org to help you locate the relevant code, and ask questions in #developers. Learn, hack, repeat.
I wrote a post about my experiences getting involved over the past year, and it seems to reflect the path that a significant amount of Mozilla developers took.
You might want to review a list of known bugs and see if you're able to fix them. Other possible way to get a foot in the door is to get involved in quality assurance tasks, which would help you learn better internals of the application.
Bugs marked in Bugzilla with the [good first bug] whiteboard status are a good place to start. You can view the list here.
Find something you like and try to fix it! The developers on IRC (#developers in irc.mozilla.org) are usually happy to help when you get stuck.
If you are interested in parsing, learn finite state automata and formal gramars, it should be part of your CS curriculum at some point, like in a compilers class. For the javascript part, study about JIT compilers, specially on how a tracing JIT works. Follow Mozilla development blogs, here is a good starting article:
http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/
Finally, but not least importantly, try to contact people already working there, and try to build a mentor-pupil relationship, they can assign you tasks and can help if you get stuck when working on the code. Going to opensource conferences is a great way to meet the people behind a project and get started contributing.
Mozilla Developer Guide

Project in Ruby

I've been coding alot of web-stuff all my life, rails lately. And i can always find a website to code, but i'm kind of bored with it. Been taking alot of courses of Java and C lately so i've become a bit interested in desktop application programming.
Problem: I can't for the life of me think of a thing to code for desktop. I just can't think of anything i can code that isn't already out there for download. So what do i do?
I need some project suggestions that i can set as a goal.
I would say you should roam through github or some other open source site and find an existing young or old project that you can contribute to. Maybe there is something that is barely off the ground, or maybe there is a mature project that could use some improvement.
I find to complete a project, it needs to be something I am passionate about. I feel you need to find your own project I'm afraid.
There is always the Netflix Prize though!
I would write a ray tracer.
Oops, sorry... you're looking for an original idea. :) Ray tracers are still cool, though, and easy to get started on. Maybe you'll get an idea for a game while you're working on it.
Visit shoooes.net for a UI toolkit that's easy and fun, and then the-shoebox.org to see the kinds of things people are doing with it.
If you could make a Ruby ANSI (and xbin, and idf, and adf...) Editor, I would love you. Because that means you would have written ANSI parsing routines that I can hope you release to the open source community.
... but that is a selfish answer. Oh, and a cross-platform editor would be nice as well (although TundraDraw somewhat takes care of that).

Resources