Tag Archives: planet

Getting Involved

Recently we’ve had several feature requests in comments of a blog post. If you are interested, you can easily implement this and contribute to Kate. And I’ll even show you how to get started for the following feature. First, build Kate according to http://kate-editor.org/get-it/.

Adding support for ctrl+w {left, right, up, down} to switch the active view.

Kate has a vi input mode. This way, vim users can still use their default work flow but still use Kate at the same time. What’s missing in the current vi input mode implementation is support for view navigation. In vim, to move between different windows, press ctrl-w <arrow keys> to switch to the neighboring view. Implementing this is rather easy – the following steps need to be taken care of:

  1. Add vim bindings (=vim shortcuts) to the Kate’s implementation of the ‘normal mode’.
  2. In the implementation, find all visible KateViews.
  3. Compare the global coordinates of the window geometry by using QWidget::mapToGlobal(const QPoint& pos) (for QPoint(0, 0) and QPoint(width(), height()) of all KateViews)
  4. Call setFocus to the nearest matching of the visible views.

Patches are welcome :)

Kate’s Folding Code and Vi Mode to be improved by GSoC students

This year’s Google Summer of Code (GSoC) has started and the Kate project has been lucky to get two students who will work on improving Kate’s folding code and Vi input mode.

Adrian

Adrian will work on improving the folding code which is in need of an overhaul:

My name is Adrian. I’m studying in Bucharest, Romania, but my hometown is Constanta, a seaside town from Romania as well. I am a 3rd year student at “Politehnica” University of Bucharest, majoring in Computer Science and Engineering. I have developed a passion for algorithms since High school when I participate in many programming competitions and took things to a new level during college.

My GSoC project is called “Kate Code Folding” and I believe its name is quite explicit.  I chose this project because I am very familiar with the editor, as well as its code folding bugs. :)  Besides that, I am pretty excited that I have to develop a new algorithm for this project and I must say I find this task very challenging. For a better understanding of my project, here there are 2 paragraphs from my proposal, with no details, just the main ideas:

My project idea is based on two elements. The first one is a new approach of the problem: transform one more complex problem into two simpler problems. To be more specific, as far as I know there are two types of programming languages: there are languages that use syntactical elements like {} or any other begin/end constructions (e.g.: C/C++) and there are languages that use indentation level to define their code blocks (e.g.: Python).

The second idea is to have the new implementations compatible with the current one. What I mean is that most of the actual public functions will still be used in the new implementation (some of them will suffer a few modifications), to solve the dependencies problem in a smart and simple way. So there won’t be too many changes in the other source files.

Svyatoslav

Svyatoslav will work on improving the Vi input mode in Kate:

I am Svyatoslav Kuzmich. I’m a 2nd year student of Moscow Institute of Physics and Technology, department of Radioengineering and Computer Science.I usually write something like emulators and compilers but this Summer I am doing GSoC for KDE. I want to improve Vi input mode for Kate kpart. There are a lot of features already implemented. In some ways they works rather good. But there are some commands do not work like commands in Vim. So I want to fix them and to expand the list of commands by adding some insert and command mode’s commands for working with Kate’s tabs, window splits and bookmarks.

In more behind-the-scenes work, Svyatoslav will also write an extensive test suite for the Kate Vi Mode to make it easier to introduce new features without at the same time introducing regressions. This work has already begun.

We will try to keep you updated throughout the summer. Please wish our GSoC students good luck! :-)

Kate Behavior at Exit

From time to time it happens that bug reports get pretty much nasty. A single user or some users request a feature. If you argue, bashing starts.

In this case, it’s about Kate and the following scenario: You are editing several files (e.g. because you clicked on text files in dolphin). So Kate starts and you are not using an explicit session. If all files are saved, you can simply quit Kate. Bug #267356 requests, that the user is asked whether to save the session or not. Right now, if you are not using a session, Kate simply closes and the file list is lost. Comments are welcome, especially in the report. But please be objective and polite. Thanks…

PS: Sometimes open source development is real fun. Sometimes it’s not :p

Kate’s Tab Bar Plugins

If you check Kate’s plugin list, you will recognize that there are two different tab bar plugins available. The first one is Tabify. This plugin adds a standard KDE tab bar to the top of Kate’s main window:

The plugin shows the same entries as the “Documents” tool view on the left. With drag&drop, the tabs can be moved around. In KDE SC <= 4.6.2 this plugin is called Tabify. In KDE SC >= 4.6.3 the name is simply “Tab Bar”.

There is another plugin, called Tab Bar Extension in KDE SC <=4.6.2 (and Multiline Tab Bar in KDE SC >=4.6.3) that also adds a tab bar to Kate’s mainwindow:

As can be seen, this tab bar can be configured to span multiple lines in order to show more documents at the same time. Further, there are features like tab highlighting so that a document can quickly be found when working on a huge list of documents. There are more options in the configure dialog of this plugin (click small configure button on the right). In KDE 4.7, it is possible to change to highlight a tab by clicking on it with the middle mouse button and clear the highlight with CTRL+middle-click.

There have been requests to remove the non-standard plugin from Kate and just provide the standard conform Tabify plugin. I was about to do that, but then, we do have users that use the multiline tab bar. And as it works well and provides some features the default tab bar does not have, I’ve finally decided to keep it.

It is worth to mention that there were quite a lot of voices in the past requesting a tab bar. It was even requested to remove the “Documents” tool view, listing all the documents. However both tab bar plugins are not able to provide easy access to the opened documents, if you have e.g. 50 documents opened. Hence, the Documents tool view will remain the default, just as it always was in Kate’s life :)