Tapatalk

Get Active Document's Index

Get Active Document's Index

14
Basic UserBasic User
14

PostApr 12, 2007#1

How can I access the active document's index number? I can set the active document by using UltraEdit[x].setActive(); but how can I get the index of the currently active document?

Thanks.

258
MasterMaster
258

PostApr 13, 2007#2

Include this function that I have written. It should be called in the start of your script before any ...setActive is performed

Code: Select all

UltraEdit.activeDocument.write("Active document has index="+getActiveDocumentIndex());

/* Find the tab index of the active document */
function getActiveDocumentIndex() {
	var tabindex = -1; /* start value */

	for (var i = 0; i < UltraEdit.document.length; i++)
	{
		if (UltraEdit.activeDocument.path==UltraEdit.document[i].path) {
			tabindex = i;
			break;
		}
	}
	return tabindex;
}
Edit 2010-03-02: In UE version 16.00 a new property was added to the scripting environment: var docIx = UltraEdit.activeDocumentIdx; (See more UE 16.00 scripting enhancements...).

14
Basic UserBasic User
14

PostApr 13, 2007#3

I knew it was an array when I saw the example script using the .length property. I didn't remember seeing anything in the docs that actually said that .document is an array object, but I did go back and find that after reading your post.

258
MasterMaster
258

PostJun 16, 2007#4

I just wanted you to know, that I have sent the feature request below to IDM Support. Cheers ! Jorrasdk
Jorrasdk wrote:Hi IDM Support

Feature request: UltraEdit.activeDocumentIdx
New scripting read only property which returns the tab index of the currently active file.
Should return -1 if there are no open files in the editor.


Up to now I have used a function shown below ( getActiveDocumentIndex() ) to find the index of the active document, but it is tedious to always have this function in my script (as we can't include other scripts yet ;-).

I need UltraEdit.activeDocumentIdx to know which document to return to if I have performed some newFile's or setActive's on other files. It is also nice to create aliases to simplify code like this:

Code: Select all

var mySourceDoc = UltraEdit.document[UltraEdit.activeDocumentIdx];
UltraEdit.newfile();
var myNewWorkDoc = UltraEdit.document[UltraEdit.activeDocumentIdx];
mySourceDoc.selectLine();
myNewWorkDoc.write(mySourceDoc.selection);
Regards
jorrasdk
Edit 2010-03-02: In UE version 16.00 a new property was added to the scripting environment: var docIx = UltraEdit.activeDocumentIdx; (See more UE 16.00 scripting enhancements...).

6
NewbieNewbie
6

PostDec 02, 2008#5

Hello

Has anyone had any trouble with UltraEdit.document.length misreporting the number of documents open?

I am trying to use this function and have been getting:
An error occurred on line 81:
if (UltraEdit.activeDocument.path==UltraEdit.document.path) {
Script failed.

I have discovered that the reason for this is UltraEdit.document.length is sometimes returning a number one greater than the number of documents open, therefore UltraEdit.document.path is trying to reference a file that isn't there. In my script I am opening and closing several text files - maybe UltraEdit.document.length is getting confused?

36
Basic UserBasic User
36

PostMar 12, 2009#6

I'm using UltraEdit v14.20.1.1008. UltraEdit.document.length seems to only hold the number of documents if you use open file tabs, which I don't (I use the file tree view instead). It returns 0, even though I have several documents open. Any other ideas about getting the index of the current document in this case?

Is this something that will be remedied in the next version? Ie. getting an UltraEdit.activeDocumentIndex.

Edit:
After a closer look this must be a bug. UltraEdit.document[index] doesn't seem to work at all without having open file tabs, any reference to it results in a script fail. I doubt this is the intended behavior. I'm going to file a bug report on it, or at least ask about the behavior.

Edit2: The reply from IDM suggests that this is indeed a bug. Hopefully a fix will be out soonish =)

Edit3: This bug isn't fixed in UE15, I have however made the Open Files a Tab together with File View so it doesn't take any space at least.

6,823625
Grand MasterGrand Master
6,823625

PostNov 01, 2009#7

I have an update on the issue with document array management not working correct when the open file tabs bar is not enabled. It looks like the problem is fixed with UE v15.20.0.1017. I have not fully tested it, but one of my scripts written for IDM to demonstrate the wrong behavior of document array management when the open file tabs bar is not enabled works now correct and produces the same result as when executing it while the open file tabs bar is visible.

36
Basic UserBasic User
36

PostNov 05, 2009#8

Yes, it was fixed. I forgot I posted about it, so sorry for not updating this thread. IDM sent me a release to test a few weeks ago, and it was fixed in that one (think it was 1017 as you said, currently on 1021 testing another issue).

258
MasterMaster
258

PostMar 02, 2010#9

In UE version 16.00 a new property was added to the scripting environment: var docIx = UltraEdit.activeDocumentIdx; (See more UE 16.00 scripting enhancements...).