Re: [Anjuta-list] My Idea about Indentation
- From: "Naba Kumar" <naba kumar gmail com>
- To: "Nathan H?sken" <anjuta lonely-star org>
- Cc: anjuta-list lists sourceforge net
- Subject: Re: [Anjuta-list] My Idea about Indentation
- Date: Fri, 21 Jul 2006 23:29:07 +0300
Hi Nathan,
Thanks for the interesting approach to solving the indentation
problem. However, apart from Johannes's suggestion, the changes should
be in language-support-cpp-java plugin and not in editor plugin. We
will be removing indentation and autocompletion code from the editor
and define them in language-support plugin.
I will see how your changes fit there (the plugin itself is under development).
Thanks.
Regards,
-Naba
On 7/20/06, Nathan H?sken <anjuta lonely-star org> wrote:
Hello together,
Since I was not really happy about the indetation in anjuta I got the
Idea of using the astyle code for indentation in anjuta.
This works for me, but I am not sure if anyone would be interested in
this. I will just tell you what I did and you can decide if the
project would benefit from this.
I added the files ASBeautifier.cpp, ASResource.cpp, astlye.h and
compiler_defines.h to the editor plugin and rewrote the following
function in aneditor-indent.cxx:
----------------------------------------
#include "astyle.h"
using namespace astyle;
void AnEditor::AutomaticIndentation(char ch) {
static ASBeautifier beautifier;
//The line number correspondening to the beautifier
static int beauty_line=-1;
//Get the current and check if it is lower than the last beautified line
int curLine = GetCurrentLineNumber();
if(curLine<=beauty_line)
{
//OK, we need to restart from the begining
beauty_line=-1;
}
//If the beauty line is -1, we need to initilize the Beautifier
if(beauty_line==-1)
{
int indentSize = SendEditor(SCI_GETINDENT);
beautifier.setSpaceIndentation(indentSize);
beautifier.init();
beautifier.setSpaceIndentation(indentSize);
}
SString tmp_line;
string line;
//Get the beautifier to the state correspondening to the previous line
while(beauty_line<curLine-1)
{
beauty_line++;
GetLine(tmp_line,beauty_line);
line=tmp_line.c_str();
beautifier.beautify(line);
}
//OK, make a copy of the beautifier to beautify the current line
ASBeautifier tmp_beautifier(beautifier);
GetLine(tmp_line,curLine);
line=tmp_line.c_str();
if(line.length()==0)
{
//Set the line to something so that the characters is set to correct
position on an empty line
line="a";
}
line=tmp_beautifier.beautify(line);
//Find the indentation number and set it
int intendation=0;
while(line[intendation]==' ')
{
intendation++;
}
SetLineIndentation(curLine,intendation);
}
----------------------------------------
Greetings,
Nathan
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Anjuta-list mailing list
Anjuta-list lists sourceforge net
https://lists.sourceforge.net/lists/listinfo/anjuta-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]