Enhancing Indentation for Kate
Short description: My goal is to improve indentation functionality for Kate. I will be making tabs vs spaces functionality more consistent. This will give the opponents in the tabs verses spaces war less to not like about the other side. I will be implementing elastic tab stops, which helps make code like it was aligned with spaces, with the functionality of tabs.
Additional info: http://community.kde.org/GSoC/2011/Ideas#Projec...
Name: Alexandru Stan
Email Address: firstname.lastname@example.org
Freenode IRC Nick: amstan
IM Service and Username: Google Talk/mile92
Location (City, Country and/or Time Zone): Hamilton, Ontario, Canada, EST
Proposal Title: Enhancing Indentation for Kate
Motivation for Proposal / Goal: I am a frequent user of Kate (I write all of my code with it), so I want to support it. As a tabs supporter I feel like I have sacrificed my alignment options when writing code. Elastic tabs will solve this dilemma. My goal is to make tabs verses spaces functionality more consistent and implement elastic tabs while keeping other editors in the loop.
The idea seems pretty easy in practice. When tab is pressed: if there's a tab on the previous line at the cursor position, the new cursor position will be where the tab on the previous line ends; if there isn't a tab on the previous tab, indent a user defined number of characters.
This idea is fairly easy to implement if only using tabs as storage. But that will cause the files to have all tabs in them (not really compatible with other editors). Converting the elastic tabs to spaces will be fairly easy, the problem will be importing spaces back to elastic tabs. This importing may only work with simple documents; I will research how other editors that support elastic tabs accomplish this.
Tabs vs Spaces Consistent Functionality
I will be making tabs and spaces more functionality homogeneous. Navigating and editing a document with spaces seems to be much harder than a document with tabs.
I wish to accomplish the following:
Fix delete behavior with spaces: delete should remove the following indent (or user defined number of spaces) not just the following space.
When pressing LEFT after an indent of spaces, the cursor should move the user defined number of spaces, not just one space.
A way to easily switch between tabs and spaces behavior. Coders should use tabs or spaces according to what the project requires, not to their editor settings. Right now I have to navigate through the settings, click about 4 things to change between them; a shortcut or a menu entry might be nice. Auto detection wouldn't be bad either.
I’m unsure how to expand this more. I cannot set the timeline in stone without researching how everything works.
I have around one buffer week at the end of each month.
April - Middle of May
Get myself familiarized with Kate's source tree
Clone the repository
Improve my ideas by talking to the community. Submit bugs as a checklist for the Tabs vs Spaces Consistent Functionality ideas.
Learn the parts of Kate that I'll have to work with
Middle of May - End of June
Implement all the Tabs and Spaces Consistent Functionality Ideas.
One per week
Work on that delete behavior with spaces
Fix the cursor navigation around space indents
Implement the shortcut for switching between tabs and spaces + auto-detect. This might take 2 weeks.
One per week
Research how the indentation system works
Implement elastic tabs
Play with it for a while(use it), try to come up with new ideas.
Export to space aligned/indented files
One per week
Importing from space aligned/indented files
Research how other editors solve this
Look over the code written over the summer, clean up/document everything that was left
I have school, 4 classes per week. But the courses workload is fairly lightweight, and a lot of the course material I already know.
I also spend about 5 hours per week looking over Google AI Challenge. I'm an admin there, making sure nothing goes wrong.