home *** CD-ROM | disk | FTP | other *** search
- !!Script
- /**
- @Summary: Column upperCase~ converts column to upper case
- @Created build 476 mg20001227 (Miguel Angel Rojas Gonzalez)
- */
-
- var gOutput = getOutput();
-
- function DoCommand()
- {
- var block = getUpperedBlock();
-
- if ( block != null )
- {
- putBlock( block );
- }
- }
-
- function getUpperedBlock()
- {
- var editor = getActiveEditor();
-
- if ( editor )
- {
- var range = editor.getSelection();
-
- var startLine = editor.copy( range.startLineIndex );
- var endLine = editor.copy( range.endLineIndex );
-
- var tabWidth = editor.tabWidth;
- var startColumn = CharacterToColumn( startLine, range.startCharIndex, tabWidth );
- var endColumn = CharacterToColumn( endLine, range.endCharIndex, tabWidth );
-
- if ( startColumn <= endColumn )
- {
- var block = "";
-
- for ( var i = range.startLineIndex; i < range.endLineIndex; i++ )
- {
- var line = editor.copy( i );
- var start = ColumnToCharacter( line, startColumn, tabWidth );
- var end = ColumnToCharacter( line, endColumn, tabWidth );
- block += toUpperCase( line.substring( start, end ) ) + '\r\n';
- }
-
- var start = ColumnToCharacter( endLine, startColumn, tabWidth );
- var end = ColumnToCharacter( endLine, endColumn, tabWidth );
- block += toUpperCase( endLine.substring( start, end ) );
-
- return block;
- }
- else
- {
- return null;
- }
- }
- else
- {
- return null;
- }
- }
-
- function putBlock( block )
- {
- var editor = getActiveEditor();
-
- if ( editor )
- {
- var range = editor.getSelection();
- var startLine = editor.copy( range.startLineIndex );
- var endLine = editor.copy( range.endLineIndex );
-
- var tabWidth = editor.tabWidth;
- var startColumn = CharacterToColumn( startLine, range.startCharIndex, tabWidth );
- var endColumn = CharacterToColumn( endLine, range.endCharIndex, tabWidth );
-
- var dataArray = convertToArray( block, range.startLineIndex );
-
- for ( var i = range.startLineIndex; i < range.endLineIndex; i++ )
- {
- var line = editor.copy( i );
- var start = ColumnToCharacter( line, startColumn, tabWidth );
- var end = ColumnToCharacter( line, endColumn, tabWidth );
-
- if ( dataArray[ i ] != null )
- {
- editor.replace( dataArray[ i ], i, start, i, end );
- }
- else
- {
- editor.remove( i, start, i, end );
- }
- }
-
- var start = ColumnToCharacter( endLine, startColumn, tabWidth );
- var end = ColumnToCharacter( endLine, endColumn, tabWidth );
-
- if ( dataArray[ i ] != null )
- {
- editor.replace( dataArray[ i ], i, start, i, end );
- editor.select( range.startLineIndex, range.startCharIndex, range.endLineIndex, start + dataArray[ i ].length );
- }
- else
- {
- editor.remove( i, start, i, end );
- editor.select( range.startLineIndex, range.startCharIndex, range.endLineIndex, start );
- }
- }
- }
-
- function CharacterToColumn( line, charIndex, tabWidth )
- {
- var column = 0;
-
- for ( var i = 0; i <= charIndex; i++ )
- {
- if ( line.charAt( i ) == '\t' )
- {
- column += tabWidth - (column % tabWidth);
- }
- else
- {
- column += 1;
- }
- }
-
- return column;
- }
-
- function ColumnToCharacter( line, column, tabWidth )
- {
- var columnCount = 0;
- var length = line.length;
-
- for ( var i = 0; i < length; i++ )
- {
- if ( line.charAt( i ) == '\t' )
- {
- columnCount += tabWidth - ( columnCount % tabWidth );
- }
- else
- {
- columnCount += 1;
- }
-
- if ( columnCount >= column )
- {
- return i;
- }
- }
-
- return length;
- }
-
- function convertToArray( block, lineIndex )
- {
- var dataArray = new Array();
-
- var startIndex = 0;
- var endIndex = block.indexOf( '\r\n' );
-
- while ( endIndex > -1 )
- {
- dataArray[ lineIndex ] = block.substring( startIndex, endIndex );
-
- startIndex = endIndex + 2;
- endIndex = block.indexOf( '\r\n', startIndex );
- lineIndex += 1;
- }
-
- dataArray[ lineIndex ] = block.substring( startIndex, block.length );
-
- return dataArray;
- }
-
- function toUpperCase( line )
- {
- return line.toUpperCase();
- }
- !!/Script
-