Files
School/Anul 3/Semestrul 1/Proiect Colectiv/StoryPointEstimator/data/aptanastudio.csv
T
2025-02-06 20:33:26 +02:00

767 KiB

1issuekeytitledescriptionstorypoint
2APSTUD-3707Add Copy URL actions to right-click context menu of Remote view for S3 filesI was able to connect to our Appcelerator S3 bucket to drag and drog copy image files that I wanted to refer to remotely from the Desktop packaging release links webpage. But I had no easy way to tell what the various URLs were that I could use to refer to the resulting S3 objects/files. Cyberduck lets you right click and choose Copy URL > HTTPS, HTTPS, Signed URL (expiring in one hour, one day, or one week + one hour), Torrent URL.5
3APSTUD-23Aptana tries to open a new instance of itself when opening files via Windows Explorer{html}<div><p>Assigned to <a href= "http://aptanastudio.tenderapp.com/discussions/problems/49-aptana-tries-to-open-a-new-instance-of-itself-when-opening-files-from-win-explorere"> Tender issue #49</a>. As reported in Tender:</p> <blockquote> <p>OS: Win XP</p> <p>When Aptana is running and I try to open files from my Windows Explorer (with double click or enter) Aptana displays "Workspace in use or cannot be created, choose a different one" after showing the splash screen for 2-3 seconds.</p> <p>Dragging files into my running instance won't cause this behavior. Opening files from my Project view causes no problems, except .htaccess files. As a temp solution I chose to open .htaccess files with Notepad.</p> <p>This is what I already did (with no luck);</p> <ul> <li>My installation folder and workspace folder are both writable.</li> <li>I did several complete re-installs.</li> <li>I removed the .lock file in my workspace folder.</li> <li>I created a new workspace folders and switched to it.</li> <li>I have administrator rights.</li> </ul> <p>Creating a new workspace will fix my problem temporary but the problem is back within a week.</p> <p>In Aptana 1.2 I never saw a splash screen when Aptana was running and I opened another file. The files were just loaded in the running instance. Is this caused by Eclipse 3.5?</p> <p>This is quite annoying cause every time the splash screen shows it either takes up 3 seconds of the file won't open due to the locked workspace.</p> </blockquote></div>{html}8
4APSTUD-99Content assist popup is shown outside the screen boundariesAs you can see from the image, the JavaScript content assist popup displays outside the screen boundary to the right. 8
5APSTUD-190PHP Autocompletion for parent methodsWhen you overwrite a parent method you often need to call it from the new method, example: {code} <?php class Parent { public function doSomethingHard() { } } class Child { public function doSomethingHard() { $this->bla = 'foo'; return parent:: # content assist here should have doSomethingHard() } } ?> {code} Aptana does not autocomplete the methods after "parent::" Suggested fix: # Attempt to replicate # Check to see if the item is fixed in 5.4, or in a newer version of the 5.3 parsers # If not in our code and can't be fixed, link to PDT issue referencing the problem13
6APSTUD-246Dragging an image into the HTML editor should create an image tagDragging an image into the editor should create a img tag. You can view this behavior in TextMate. Dropping an image onto the HTML editor inserts an image tag with the relative path to the image (from this HTML file), the hight and width, and the alt text as the initial-capitalized version of the filename: i.e. dragging "notes.png" gives me: {code} <img src="images/notes.png" width="32" height="32" alt="Notes"> {code} 8
7APSTUD-350singleton scriptdoc / code completionGiven this pattern: {code} var myObject = function () { var self = {}; var priv = "blubb"; self.get = function() { return priv; }; return self; }(); {code} Aptana Studio is not able to recognise this pattern correctly. I wonder if it's possible to tell Aptana with ScriptDoc. If yes, how? I've only seen comments for classes. Additionally var self = {}; could be replaced by a super constructor, which is not working either. Can I expect this to be supported naturally by Aptana soon? I'm really searching for a good javascript IDE which also supports this kind of writing javascript in a object-oriented way.13
8APSTUD-378Aptana Studio does not ship with debugger sampleTrying to get started with Aptana Studio Debugger on a standalone install of Aptana Studio 2.0 (Mac OS X 10.4 - Intel). Following online help: "This walkthrough will instruct you how to install the Aptana JavaScript debugger, add a breakpoint to your code, and display the current values of your variables. 1. Import the debugging sample as a project. In the Samples View, expand the Aptana Studio Samples node. But in the Samples View I don't have the specified node, I only have samples related to plugins I have installed. Where do I get the Aptana Studio Samples node ?8
9APSTUD-612Redraw error when using JS snippet{html}<div><p>This may actually be an issue with my VM, but I'm posted this in case it's indicative of some other issue.</p> <ol> <li>Open a JS editor<br></li> <li>type: for<br></li> <li>type a tab<br></li> <li>Allow enough time to pass so that the popup appears next to the two "for" snippets that are available<br></li> <li>type: 2</li> </ol> <p>At this point, the two popups go away but I see trash further down the screen. That trash moves as I add/remove lines.</p></div>{html}8
10APSTUD-769PHP DebuggerThis is something that was shipped with 1.5 (skipped out on 2.0 so don't know if it's there). Don't know if this is planned for 3.0 (on the product page I've seen that JS debugging is coming soon), yet it would be great if this were to be found into Aptana again (same goes for the ability to run a script through the PHP parser to get the output). I've found the debugger to be one of the main Aptana features I use during my lectures (I'm a lecturer at a technical university), helping the students to understand what's going on on "the inside" of a PHP process.40
11APSTUD-796Project Explorer is showing duplicate files and foldersIn the attached image, Project Explorer.png, you can see the current improper behavior. In attached image, C-C++ Projects.png, you can see the expected behavior. The view is proper in Project Explorer for Web Projects. This is with a new install of Eclipse Helios CDT and Aptana Studio 3 on Arch Linux. This also appears in a few other circumstances (see linked issues).13
12APSTUD-814Option to remove trailing whitespace on file saveEclipse PDT provides the option to have trailing whitespace automatically removed from files on save (i.e. from the end of a line where it has no impact). Is it possible you could add this useful feature?13
13APSTUD-832Find dialog cause text selection to "invert" colorsThis is what happens: # I select some text - I open the find/replace dialog (I press CTRL+F then click on the magnifier icon in the search bar) # At this point the selection is gone (like it is "inverted" or something similar), so the option to find/replace only in selected line is useless. I'm on the latest build (win7) and never experienced this before. The error log is clean.8
14APSTUD-865Add ability to Shift+Ctrl+arrow to select word via camel caseIn my old Aptana2 + PDT the selection width Shift+Ctrl+arrow selected only a single segment from a camelCaseWord. In the current version the whole word in selected. Is it possible to change this behaviour somehow (maybe with an option)?8
15APSTUD-994PHP: Error updating PHP error markers{code} !ENTRY com.aptana.editor.php.epl 4 0 2010-10-02 20:54:35.764 !MESSAGE Error updating markers !STACK 1 org.eclipse.core.internal.resources.ResourceException: Marker id 7158 not found. at org.eclipse.core.internal.resources.Marker.checkInfo(Marker.java:56) at org.eclipse.core.internal.resources.Marker.setAttribute(Marker.java:236) at org.eclipse.core.internal.resources.Marker.setAttribute(Marker.java:222) at com.aptana.editor.php.internal.core.builder.BuildProblemReporter.flush(BuildProblemReporter.java:121) at org.eclipse.php.internal.core.ast.nodes.AST.flushErrors(AST.java:235) at com.aptana.editor.php.internal.indexer.PDTPHPModuleIndexer.indexModule(PDTPHPModuleIndexer.java:3789) at com.aptana.editor.php.indexer.PHPGlobalIndexer$WrapIndexer.indexModule(PHPGlobalIndexer.java:116) at com.aptana.editor.php.indexer.PHPGlobalIndexer$7.run(PHPGlobalIndexer.java:449) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) !SUBENTRY 1 org.eclipse.core.resources 4 376 2010-10-02 20:54:35.764 !MESSAGE Marker id 7158 not found. {code}5
16APSTUD-1313Auto-configure Python interpreter (if possible){html}<div><p>My project indicated that I didn't have a python interpreter configured. I managed to eventually find the dialog, clicked "auto-configure" and everything appears to be fine.</p> <p>Suggest two steps. Clicking on the error icon in the project brings up a dialog asking if you'd like to configure the interpreter. It would first try to auto-configure the interpreter, and then alert if it fails. It could then direct people to the normal preference page where they could fix the problem manually if necessary.</p></div>{html}1
17APSTUD-1378Updating to latest RCP on dev installs JDT plugins{html}<div><p>I noticed this by seeing no content in the App Explorer, which is something Ingo had seen. After some digging, it looks like Java filters got applied, which was especially surprising since we shouldn't have any. So I dug further and see JDT plugins in my installation, yet I don't see them belonging to any of the features, so I'm not sure how they got installed.</p></div>{html}13
18APSTUD-1469Terminal process cannot be killed with Ctrl+C or Ctrl+Break{html}<div><p>Assigned to <a href= "http://aptanastudio.tenderapp.com/discussions/problems/2083-terminal-process-cannot-be-paused-or-killed"> Tender discussion #2083</a>. As reported in Tender:</p> <blockquote> <p>When I start a long time process in terminal window, neither can i press ctrl-c to break it, nor can i press ctrl-z to pause it</p> </blockquote></div>{html}13
19APSTUD-1609JS inferencer should honor @memberOf sdoc tagCurrently, the JS inferencer does not process @memberOf sdoc tags. It may even be the case (likely) that the sdoc parser/scanner/model need to be extended to support this tag as well.20
20APSTUD-1698No file system is defined for schemeFrom the log file: {code} !ENTRY org.eclipse.core.filesystem 4 566 2011-02-08 22:01:00.387 !MESSAGE No file system is defined for scheme: reference {code}5
21APSTUD-1839Allow to open a closed project by double-clicking on it in Project Explorer{html}<div><p>I have the latest Aptana 3 installed. I have the preference selected to open projects with double click, it doesn't work. I switched it to single click, same result, didn't work.</p> <p>Let me know if you need more information!</p> <p>Thanks,<br> Jason</p></div>{html}5
22APSTUD-1889The editor find toolbar interrupts certain keyboard shortcutsScenario: You have several tabs open, and the cursor/focus is somewhere within the "Find" toolbar that appears at the bottom of the screen (shortcut = Cmd+F). Steps to reproduce: 1. Open a file in the studio editor. 2. Open the find toolbar (CMD+F). 3. With focus in the toolbar press CMD+tab. Expected behavior: User should be able to use OS keyboard shortcuts while in Studio. Actual behavior: Keyboard shortcuts do no work while focus is on the find toolbar. Note: This also happens for the Open Resource shortcut (CMD+T) and the Close Window shortcut (CMD+W).5
23APSTUD-1978Error deleting project attached to git{html}<div>When I tried to delete the test project I used above, I got "an exception has been caught while processing the refactoring ' Delete resource' " ...<br> Problems encountered while deleting resources.<br> Could not delete '/aptana2569_2/.git'.</p> <p>Problems encountered while deleting resources.<br> Problems encountered while deleting files.</p> <pre> <code>Could not delete: E:\SR\documents\eclipse\aptana2569_2\.git\refs. Could not delete: E:\SR\documents\eclipse\aptana2569_2\.git.</code> </pre> <p>Could not delete 'E:\SR\documents\eclipse\aptana2569_2'.</p> <p>Problems encountered while deleting files.<br> Could not delete: E:\SR\documents\eclipse\aptana2569_2.git\refs. Could not delete: E:\SR\documents\eclipse\aptana2569_2.git. Could not delete: E:\SR\documents\eclipse\aptana2569_2. Could not delete 'E:\SR\documents\eclipse\aptana2569_2'.</p></div>{html}8
24APSTUD-2120Menus aren't visible in Ubuntu Unity window managerAptana doesn't show the menu bar in Unity window manager on Ubuntu 10.10+8
25APSTUD-2129"select tag area" feature{html}<div><p>Assigned to <a href= "http://aptanastudio.tenderapp.com/discussions/problems/896-select-tag-area"> Tender discussion #896</a>. See Tender request below. Suggestion is to allow one-click or shortcut access to select the content of a tag pair. Suggest modifying HTML ruble command to select tag pair and content to just select tag content</p> <blockquote> <p>On october 2008 I made this feature request.</p> <p><a href= "http://support.aptana.com/asap/browse/STU-2511">http://support.aptana.com/asap/browse/STU-2511</a></p> <p>"Select tag area"</p> <p>This is a feature that every text editor should have, if it is designed to edit html, xhtml or any syntax that envelopes content in matched tags.<br> When it is available, it significantly cuts down on the time spent editing complex markup.</p> <p>Unfortunately, only one tool I know of has this. Quanta plus. An old, buggy and tired editor that I can't live without.</p> <p>This feature becomes indispensible once you are familair with it.</p> <p>So, I logged a request back in october 2008, when a much earlier version on aptana is in circulation.<br> I occaisonally fire up aptana to remind myself of it's potential, and to make sure I haven't overlooked any kiler features that make me stick with it.</p> <p>But, I'm afraid that I'm dissapointed that this basic feature is still unavailable. And I can't justify using aptana for future projects.</p> <p>At the moment I am using quanta and a heavily customized emacs environment that allows me to code freely in html, css, js, php, python and my frameworks of choice. I dislike having to use more then one text editor. I'd love to just use aptana. But, without a feature analogous to "select tag area", I'm afraid it's game over.</p> </blockquote></div>{html}5
26APSTUD-2134Add .location property to file templates{html}<div><p>From the current system:</p> <pre> <code class="ruby">template "Custom Template" do |t| t.filetype = "*.html" t.invoke do |context| ENV['TM_DATE'] = Time.now.strftime("%Y-%m-%d") raw_contents = IO.read("#{File.dirname(ENV['TM_BUNDLE_SUPPORT'])}/templates/html5.html") raw_contents.gsub(/\$\{([^}]*)\}/) {|match| ENV[match[2..-2]] } end end</code> </pre> <p>bringing it inline with something like project templates:</p> <pre> <code class="ruby">project_template "Basic Web Template2" do |t| t.type = :web t.location = "templates/basic_web_template.zip" t.description = "A basic template which includes only a default index.html file" end</code> </pre> <p>i.e.:</p> <pre> <code class="ruby">template "Custom Template" do |t| t.filetype = "*.html" t.location = "templates/html5.html" end</code> </pre> <p>By default this WOULD DO environment substitution.</p></div>{html} Also add a "replace_parameters" setting to allow turning on/off parameter substitution (identical to project templates)1
27APSTUD-2186Chromium: Update WebKit Browser implementation to cef_rev392NULL20
28APSTUD-2252Warn user if they are creating project in an area with pre-existing files{html}<div><p>This change should apply to <em>all</em> new project wizards we support.</p> <p>If a user unchecks the "use default location" checkbox, provide a warning message right below the location field indicating if the location in question already has pre-existing files. Since the path can be long, make sure it's easy to see the full path to which the user is saving the project.</p></div>{html}1
29APSTUD-2286Implement improved terminal hyperlink detectionOn terminal windows with a long history of output (a couple pages), scrolling up with the mouse wheel will jump back down once it reaches a certain point. However, if you manually drag the scroll bar up, you can see history beyond the jumping point. I've seen this reproducible on Allen's machine when you tail rails logs. You can see similar symptoms in the attached movie. A short investigation showed that the issue relates to the implementation of hyperlink detection in Terminal. Disabling hyperlink detection eliminates the issue. Suggested fix: Re-implement hyperlink detection code to make it free of scrolling/drawing issues.8
30APSTUD-2345Add color preview support for SASS editorSASS editor doesn't support color preview in way of CSS editor does. Build: Aptana Studio 3, build: 3.0.2.201105022257 Build date: 02 May 2011, 22:59:13 5
31APSTUD-2430Find bar should auto-select search text when opened{html}<div><p>Currently if you open the find bar with ctrl-f (when no text is selected) it just places the cursor at the beginning of the input - I think it should automatically select the contents of the input so that you can just start typing immediately to replace whatever your last search was.</p></div>{html}5
32APSTUD-2451Support CoffeeScript syntax coloring{html}<div><p>We should support syntax highlighting/coloring for coffeescript files: <a href= "http://jashkenas.github.com/coffee-script/">http://jashkenas.github.com/coffee-script/</a></p></div>{html}1
33APSTUD-2573Pydev local import quick fix does not condense imports from same file{html}<div><p>To reproduce:</p> <pre> <code class="python">class Eggs(object): def spam(): from string import Template return Template('') + digits # Press CTRL+1 on this line. Hold down CTRL while selecting from string for 'string.digits'</code> </pre> <p>result:<br></p> <pre> <code class="python">class Eggs(object): def spam(): from string import Template from string import digits return Template('') + digits</code> </pre> <p>expected:<br></p> <pre> <code class="python">class Eggs(object): def spam(): from string import Template, digits return Template('') + digits</code> </pre></div>{html}1
34APSTUD-2691Add F2 support for Content Assist HoverF2 should pop up the content assist tooltip, or if hovering over content, F2 will provide focus.20
35APSTUD-2705Expand / Collapse icons in Project Explorer drawn with 1px bordersPlease see attached screenshot - the icons for expand / collapse are now rendered with a white 1px border surrounding them making them look a bit ugly. 13
36APSTUD-2708Allow colorization of folding/line number area in editor gutterIn Studio 2, we could custom color the area where line numbers and folding markers site (see image). We seem to have lost this ability in Studio 3.1
37APSTUD-2710Allow us to set a flag on ParseNodes to filter them our of outline, but to include their childrenSometimes we have AST nodes which we want to denote structure or something internally but make no sense in the outline. We should have a field and code in common to easily "skip"/"flatten" these node types (i.e. Ruby's blocks, we want the vars inside but we don't want to show the block; if/for/else/switch) - in this case meaning, don't show this node, but do show relevant children.1
38APSTUD-2712Allow per-project formatter settingsRather than having formatter settings apply to all projects globally, allow for per-project settings.1
39APSTUD-2715Code assist "explanation" overlays on top of code assist dropdown overlay.When the code assist dropdown selector overlays the code, the 2nd overlay explaining the selector lays on top of the selector instead of out to the side. I cannot see the possible choices because the 2nd overlay is in the way.1
40APSTUD-2717Code assist cancels out if using quotations on javascript opener tagsWhen typing "<script language=..." the code assist overlay pops up, however if I use quotations after the equals sign, the code assist fails to appear. Aptana Studio 2 allows me to format the code here how I please.1
41APSTUD-2727Add support for JavaScript white-space code formattingAdd JS formatting options to control the spaces between the JS elements.1
42APSTUD-2728Add warning when adding a theme rule that duplicates an existing ruleWhen adding a new rule to a theme, it's possible a user may add a rule that duplicates an existing one by trying to color the same scope. The user is confused because the new rule generally won't work. Suggest popping up a warning dialog indicating that the another rule exactly matches the current definition, and ask them if they would like to edit that rule instead. "Rule ^Rule^ exactly matches this definition. Would you like to edit that rule instead?" Options: Yes, and delete this rule No This could possibly be done as a warning as well. Some UI experimentation might be necessary to see what is most intuitive.8
43APSTUD-2733Separation for PHP element colouringSeparation for PHP element colouring (Public, Private, Abstract, Static, etc., etc.)1
44APSTUD-2752Support Ruby Watch ExpressionsSupport watch expressions in ruby. Looks like we can just port the RDT impl over easily. It's a single class with a couple nested classes in it, and it gets registered via a debug.core extension point.8
45APSTUD-2758Display a helpful error message when self-closing a non-void HTML tagTwo different related scenarios here: 1- Steps to reproduce: Enter <video /> in an HTML edit window Actual result: Errors window shows "video is not recognized!" Expected result: Errors window shows something like "Self-closing syntax (/>) used on a non-void HTML element." 2- Steps to reproduce: Enter <div /> in an HTML edit window Actual result: No result (no error is displayed) Expected result: Errors window shows something like "Self-closing syntax (/>) used on a non-void HTML element." 1
46APSTUD-2771Change default URL for "Add Remote" Git dialog boxCurrently, when adding a remote, we default to: git://github.com/username/project.git, which is read-only Suggest instead we default to: git@github.com:username/project.git, which is read-write Alternately, we might ask the user if they are a contributor to the project, or just an observer, and perhaps offer a switch betwen the two optons1
47APSTUD-2772Add new "push new branch to remote" command to Git menuWhen sharing a local project with a new Github repo, a user is instructed to do the following: # git remote add origin git@github.com:username/project.git # git push -u origin master The first one can be done inside studio with "Add remote" but not the second one, where the user is forced into the terminal. Chris suggested a "Push new Branch to Remote" menu option to help with this step.1
48APSTUD-2773Add hints/warnings/tips around SFTP error dialogs.NULL1
49APSTUD-2775Slightly re-arrange existing project creation UI for template selectionThe attached dialog below seems a tiny bit confusing. In order to _not_ use a template, you can leave the "Create the project using..." box checked, but not choose a template. Suggest two options: # Leave the checkbox, but don't check it until a user has actually selected a template from the list # Remove the checkbox, and instead add a "No Template" as the top option in the list, which is selected by default.1
50APSTUD-2782Create JS Type View for ProjectsCurrently, we sort of mix type info and lexical info in the JS outline. We should create a separate view that shows type information from the JS index for the currently active project. This would be separate from the outline view.1
51APSTUD-2789Nicer default name for theme copySteps: # Open the *Preferences > Studio > Themes* page # Press the + button to make a copy of the existing theme # Note the default name of the new theme. Suggest that the name be Copy of ThemeName, Copy (2) of ThemeName (this follows duplicate naming conventions of Eclipse)1
52APSTUD-2796Add FTPS option to disable SSL/TLS session resumptionNULL1
53APSTUD-2798Add "Deploy" Menu-Entry to "Merge Results" Context MenuWhen using Subclipse to merge some revisions, there's a view "Merge Results" where the merged files are listed. With Aptana 2.x it was possible to Upload the files directly from that view using the ftp connections. In Aptana 3.x there's no menu entry to upload the files from that view: You have to search each of the merged files or directories in the Project Explorer (or App Explorer) and upload it there. *There should be the "Deploy" Menu Entry in the context menu of the "Merge Results"-View.*1
54APSTUD-2809Add editor debug items to properties viewWhen debugging in Studio, it is useful to see more information about the current position of the cursor. Suggest updating the properties view with the following information: Depending on the current cursor position, it would show the following: Content Type: text/javascript Scope: source.js Text: appendPoints Offset Start: 531 Offset End: 531 Length: 12 characters 1
55APSTUD-2811"Automatically sync my changes with the remote site" only syncs one wayIn the deployment settings, "Automatically sync my changes with the remote site" is selected, and "automatically sync in both directions" is chosen. Opening a file on the remote connection, making a change and saving the file does not initiate a sync with the local copy of the file. The local copy remains unchanged. (Opening a file locally and saving does initiate a sync and updates the remote copy as expected.)8
56APSTUD-2816Convert "New From Template" menu to create "Untitled" files by defaultCurrently, the "File > New From Template" menu creates a new project-based file or a new file on the filesystem, depending on the active selection in project explorer (defaulting to the project-based behavior) Many users want the ability to create a new untitled file. This is possible, but a user would then have to preselect the type of file (i.e. HTML, CSS, etc.). In order to achieve this in Studio 2, we had a selection of wizards that activated and deactivated based on the current selection. This worked, but was a clumsy solution. A different proposal is that we, by default, make the "New From Template" menu adopt the following behavior: # File > New From Template. Creates a new untitled file of the specified type (new behavior) # Right-click on project in Project Explorer view. Creates a new project-based file (current behavior) # Right-click on file system node in Project Explorer. Creates a new file on the file system (current behavior) This links with another ticket to make it easier to save this file into a project or file depending on the user's preference.1
57APSTUD-2817Add dialog to allow user to choose between saving a new "Untitled" file into a project or the file systemThen saving a new untitled file, the default mechanism is to bring up the "Save to File System" dialog, allowing them to save a file somewhere on their drive. This becomes confusing if instead they want to save it into a project. Unfortunately, we can not universally add this option to all possible untitled files, but for those derived from our editor classes, we propose to do the following: # override the default behavior in AbstractDecoratedTextEditor.performSaveAs() # For untitled files, pop up our own dialog asking is the user wishes to save on the file system or in a project (radio button selection). Depending on the choice, we can then pop up the correct subsequent Save As... dialog. Extra points if we can somehow embed the other Save as dialogs in the "choice" dialog, preventing the user from having to answer two subsequent dialogs. Also suggest that we could have the user "remember this choice" if they almost always want to do one or the other.1
58APSTUD-2820Handle common meta-programming idioms that define methods for Ruby indexingRails uses a number of class-level methods to attach other methods, such as "delegate", "cattr_accessor", "cattr_writer", "cattr_reader", and "class_attribute". We don't currently handle these. We'll need to look for calls to these and manually expand the type's method list to include the generated methods that result from calling those.1
59APSTUD-2821Allow for go to declaration on Ruby require/load stringsWe support go to declaration on things like type names, method calls, variables. We should support opening the related file on the loadpath for the paths mentioned in require/load calls.1
60APSTUD-2823Allow spacing customization in CSS FormatterWe don't currently format spacing between words, and various syntax like ':' ',' '(' ')' etc1
61APSTUD-2843Add XML parse-level validationIf you enter syntax errors in an XML document, there are no warning icons in the left gutter. Steps to replicate : 1. Open Aptana Studio 3.0.3. 2. Select XML file from template (File > New From Template > XML > XML Template) and open new file. 3. In the XML editor, select all text and enter the following file content : no_syntax_validation <!!!this is an invalid tag> </mismatched_ending> Actual Results : There are no syntax errors reported in the left gray sidebar. Expected Results : The left gray sidebar should report invalid syntax. 8
62APSTUD-2853Create wrapper for InstanceScope() and DefaultScope() in codeInstanceScope() and DefaultScope() constructors have been deprecated in Eclipse 3.7. However, the replacement methods (InstanceScope.INSTANCE) is only available in Eclipse 3.7, so we cannot universally switch to it yet. Adding @SuppressWarnings("deprecation") to all usages is problematic, since it will display "Unused annotation" in Eclipse 3.6 Suggest making wrapper methods for the above items and adding a single @SuppressWarnings to those instances. Thus, we only have two warnings in the problems view rather than the hundred or so we have now.1
63APSTUD-2854"New From Template" should list all possible file types, and provide a template option for eachSome file types (YAML for instance) don't really have a default template. It basically consists of an empty document just so that we can make sure there is an entry in the New... menu. Suggest instead scanning the bundles, and if a file type does not have a template attached, suggest creating a entry "File Type > Blank File" for each. This will also make it easier once we convert File > New From Template to create untitled files, and cut down on the number of unnecessary templates created.1
64APSTUD-2901Create Aptana Studio Start PageThis would crib from the Titanium Studio start page with a few differences: * The page should show on first startup, and after each update. * The page would contain the following content: ** Link to documentation ** Link to how to install SVN, DB, other plugins ** Link to how to install a JS library ** Link (or iframe) of release notes for latest released version ** Link/iframe of Stack Overflow questions1
65APSTUD-2902PHP chaining code hinting using classes with chain desing pattern code hinting breakes when function in chain has parameter. For example in Doctrine_Query class: {{$q = Doctrine_Query::create();}} {{$q->from()->select(); //list of available function is displayed}} {{$q = Doctrine_Query::create();}} {{$q->from('modelName')-> //no code hinting}} 5
66APSTUD-2941Notify Studio 2 users that there is an upgrade to Studio 3This probably should be something both on the home page, in the views, and also perhaps a popup? # Tell them about the new features # Direct them on how to install the new version # Show them the migration guide1
67APSTUD-2971Use regular expressions to improve scope selector matching performanceOur current implementation for matching will require roughly N^2 comparisons, worst case for AND. I'm wondering if we could convert the selector to a regex and then perform a regex match instead of using our nested loops. That would have to be a lot faster. For example (and simplifying things a bit), the above selector could look like the following regex, where whitespace is ignored: {code} ^ .* \b(text(\.[a-z]+)*)(\b|$) .* \b(source(\.[a-z]+)*)(\b|$) .* $ {code}13
68APSTUD-2983App Explorer constantly refreshing/resorting contents on Git-bound projectsSteps to reproduce: # Check out a project from git (Suggest using https://github.com/aptana/html.ruble, File > Import > Git Repository) # Switch to using App Explorer # Expand templates folder # Edit 1_1.xhtml. Save # Note order of files/folders reshuffles. This will repeat with each new file edited. See before/after screen shorts below.8
69APSTUD-2998Stage hunks/selected lines with Git in Aptana Studio 3?I've got Aptana working nicely with Git, but there's only one thing that keeps me opening Git GUI: Staging only part of a file. In Git GUI, I can select some lines and either stage those lines, or stage the hunk they're in. In Aptana, it only seems to allow me to stage **all edits** to a file. It is important to support staging individual or groups of hunks or lines.20
70APSTUD-2999Can't set breakpoint in haml (ruby) templatesEditor does not allow setting of ruby breakpoints in haml view templates on lines with ruby code (starting with = and -) These ruby code lines should be breakpointable just like in erb templates. If there is a workaround, please describe in detail. Thanks, tv/1
71APSTUD-3014Support "ftp" scheme using EFS filesystem extensionWe should support using ftp URIs in the EFS filesystem API using our existing infrastructure. Forget handling passwords/prefs, just assume the URI contains the info needed to connect (i.e. login/password/port/host). Users will be able to see/use this in the HTML editor by trying to get Content Assist on a public anonymous FTP site, by enter in: {code} <a href="ftp://3dftp.com/|"></a> {code} and then hitting Ctrl+Space at the | (which is where the cursor should be, not something user actually types) and getting back the folders "pub", "incoming" and "conf" as options.1
72APSTUD-3045Upgrade Hudson to latest versionNULL1
73APSTUD-3053Support for Mac OS X Lion Full Screen ViewMac OS X Lion has a full screen feature for a lot of native apps. It would be great for Aptana to have a feature like this.8
74APSTUD-3061Copy/Cut/Paste intermittently fails in editorThere is a very strange issue that has been happening to me since I started using Aptana Studio at version 3.0.2...Sometimes when I copy (or cut) some text from the editor and paste it somewhere else in the same or different file, Aptana will paste the last thing (or second to last, depending on how you look at it) instead of the most recent thing I just copied. I thought maybe just my keyboard wasn't working, since I had never experienced something like that before. But then my co-worker (who is also using Aptana 3.0.3) asked me if I was experiencing copy/paste issues too. That's when I knew I wasn't the only one. We noticed that the times when he can't copy/paste is when Aptana is using up 100% of the CPU. So, not sure if there is another bug and this is just a side-afect, or if this is a bug that can be isolated. I don't know how to replicate this. All I know is that it is happening at seemingly random times. Update: Some people have reported relief after unbinding the shortcut 'command + c' from 'copy' under Preferences/General/keys. Unbinding this shortcut resolved the issue of copy/paste randomly not working. It also appears that this is a long-standing Eclipse issue: * https://bugs.eclipse.org/bugs/show_bug.cgi?id=368354 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=200743 Which suggests that there is some more investigation to do here. 13
75APSTUD-3100Create FindBugs Profile appropriate for validating code correctnessThe default FindBugs profile is too strict for our current code base. We need to create a more limited profile that we can use to validate all committed code for possible errors. Please create a profile, run it against some of our current source code to see if it reports what is expected, and pass it around to the other developers for confirmation.1
76APSTUD-3101Create PMD profile to validate Studio codeThe default PMD profile is too strict for our purposes. Create a default PMD profile all developers can use to validate code correctness before checkin. Please create a profile, run it against some of our current source code to see if it reports what is expected, and pass it around to the other developers for confirmation.1
77APSTUD-3130Upgrade Unit Test CoverageOur current unit test coverage hovers around 30% (class, method, block, and line) We need to get this higher. Here are the classes we need to test: Please create a sub-task for the class you want to test, and edit the document to indicate you've claimed that test. If there already is a task created for a particular class, it means someone else has claimed that one, so choose another. If there are a bunch of related classes, you can group that into one task. Coverage goals for all classes below is a _minimum_ of 100% class, 70% method, 80% block, 80% line (default Emma values in Jenkins) * com.aptana.core.util ** KeepAliveObjectPool ** ObjectPool ** ReapingObjectPool ** StreamUtil ** URIUtil20
78APSTUD-3132Update Studio version # from 3.0.4 to 3.0.5NULL1
79APSTUD-3133JavaScript - "Auto format code block when typing closing brace '}'" formatting option as there is in Aptana 2Aptana 2 has great feature for JavaScript formatting: "auto format code block when typing closing brace '}'". This setting accessible in Aptana 2 from: Window -> Preferences -> Aptana -> Editors -> JavaScript -> Typing -> Formatting It would be nice if such feature will be presented in Aptana 3 Attached screenshot of the preferences screen in Aptana 2 and another screenshot showing formatting behavior. h3. Suggested solution # Add preference (off by default) for this setting # Find relevant nodes in the AST--convert into selection and perform format # Add lots of unit tests20
80APSTUD-3149Convert cygwin paths to Windows paths in ENV when executing process outside Terminal (console/process/ProcessBuilder)We ran into an issue with PATH holding cygwin paths on Windows breaking git clones. I added a method to convert between the two, but we need to make sure we convert anywhere we're not executing inside the Terminal/bash.1
81APSTUD-3189Support Javascript go to definition hyperlinksThis comes from trying to close APSTUD-46, which must have been a Studio 2.x ticket. We should support Ctrl+Clicking to go to definition for Javascript functions, variables, properties.1
82APSTUD-3228Allow creation of a new project by dragging folder into root of project explorer or onto dock iconIt should be simple to create a project by dragging an existing folder from the Finder/filesystem explorer either into the project explorer root or onto e.g. the dock icon of Studio. This is such a basic function. Although this can be done from the filesystem tree in project explorer, it's tedious to dig through the entire hierarchy to access a folder that's already there in an OS filesystem browser view. This should have been the very first feature implemented in Eclipse, but it's still lacking. Please implement. It's valuable for first-time users and experienced users alike.13
83APSTUD-3250Shrink (or remove) errant indexing messagesWhen a file scheduled for indexing disappears, the following message gets printed to the log file: {code} !ENTRY org.eclipse.core.resources 4 368 2011-08-11 11:32:42.401 !MESSAGE Resource '/uatest2/build/android/bin/assets/Resources/app.js' does not exist. !ENTRY com.aptana.editor.js 4 0 2011-08-11 11:32:42.464 !MESSAGE (Build 3.0.3.1312842772) [ERROR] File not found: C:\Users\Ingo Muschenetz\Documents\Titanium Studio Workspace\uatest2\build\android\bin\assets\Resources\app.js. !STACK 1 org.eclipse.core.runtime.CoreException: File not found: C:\Users\Ingo Muschenetz\Documents\Titanium Studio Workspace\uatest2\build\android\bin\assets\Resources\app.js. org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) org.eclipse.core.internal.filesystem.local.LocalFile.openInputStream(LocalFile.java:371) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.indexFileStore(JSFileIndexingParticipant.java:108) com.aptana.index.core.AbstractFileIndexingParticipant.index(AbstractFileIndexingParticipant.java:139) com.aptana.index.core.IndexRequestJob.indexFileStores(IndexRequestJob.java:423) com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:100) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.io.FileNotFoundException: C:\Users\Ingo Muschenetz\Documents\Titanium Studio Workspace\uatest2\build\android\bin\assets\Resources\app.js (The system cannot find the path specified) java.io.FileInputStream.open(Native Method) java.io.FileInputStream.<init>(Unknown Source) org.eclipse.core.internal.filesystem.local.LocalFile.openInputStream(LocalFile.java:362) ... 5 more !SUBENTRY 1 org.eclipse.core.filesystem 4 271 2011-08-11 11:32:42.464 !MESSAGE File not found: C:\Users\Ingo Muschenetz\Documents\Titanium Studio Workspace\uatest2\build\android\bin\assets\Resources\app.js. !STACK 0 java.io.FileNotFoundException: C:\Users\Ingo Muschenetz\Documents\Titanium Studio Workspace\uatest2\build\android\bin\assets\Resources\app.js (The system cannot find the path specified) java.io.FileInputStream.open(Native Method) java.io.FileInputStream.<init>(Unknown Source) org.eclipse.core.internal.filesystem.local.LocalFile.openInputStream(LocalFile.java:362) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.indexFileStore(JSFileIndexingParticipant.java:108) com.aptana.index.core.AbstractFileIndexingParticipant.index(AbstractFileIndexingParticipant.java:139) com.aptana.index.core.IndexRequestJob.indexFileStores(IndexRequestJob.java:423) com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:100) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code} That seems a bit overkill. Do we need to print this message at all? If so, perhaps we just print a modification of the top one w/out the stack trace, or only display the stack trace when viewing INFO severity?8
84APSTUD-3307Aptana Studio has wrong "My Documents" pathAptana Studio uses wrong paths, causing errors on initial start. When started, Aptana Studio presents error "periodic workspace save has encountered a problem" (see attached). The path given by that error is wrong... somehow Aptana Studio thinks: 1) My main profile is located on the D: drive (wrong) 2) My documents folder is located on D: drive (wrong) 3) My documents folder is named "My Documents" (wrong) 4) My D: drive has a lot of space to store stuff (wrong) Items 1, 2 and 3 can be easily queried from Windows, and item 4 would be a non-issue if Aptana used correct paths. Due to this bug, my D: drive is now full with mysterious files created by Aptana all of which, as far as I can tell, should either be on the C: or M: drives. In addition, installation of PortableGit fails, probably due to attempting to install into an incorrect path.13
85APSTUD-3316Support Node.js editing* Code Assist * Support for "requires" and imported modules * Auto-attaching of documentation sources (see http://blog.jetbrains.com/webide/2012/03/attaching-the-sources-of-node-js-core-modules/) for an example of possible workflow20
86APSTUD-3322Find new location for Aptana Rubles folder, or create it on demandIt appears some users are upset by the creation of an empty Aptana Rubles folder in user.home on startup. Given that user rubles can now be created directly in-workspace as top-level projects, the current Aptana Rubles location may be antiquated, as users will rarely have to interact with the folder directly. Viewing here: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html It suggests that a possible better location would be under the osgi.configuration.area. Alternately, we could only create the Aptana Rubles folder if a user chooses to actually download and install new Rubles.8
87APSTUD-3343No "Synchronize" option in right-click menu# Create a new local project # Create a connection to a remote server # Right click on a file in the local project. No Synchronize option there. It may be that "Synchronize" is encapsulated by "deploy app", though deploy to me suggests deploying from the root. Suggest we really need the Sync option for FTP/SFTP type sites.8
88APSTUD-3368Add console.debug selector to default themesNULL1
89APSTUD-3376PHP: Add Open Type/Method PHP featureOne feature that is sorely missed is Open Type in the Eclipse PHP PDT. Attached is a screenshot of the feature in Eclipse PDT.5
90APSTUD-3380Upgrade packaged JRuby to 1.6.4We currently use JRuby 1.6.3 which has at least one bug causing issues for Turkish users.1
91APSTUD-3381Upgrade jrubyparser plugin to latest from githubThere are 1.9 syntax fixes int he latest jrubyparser source. I'll need to clone it, compile, put the new binaries in our plugin and then perform any fixes afterwards as a result of any API changes.1
92APSTUD-3402Update FTP Library to 3.9.1EDT released a new update of the FTPPro library: http://www.enterprisedt.com/products/edtftpjssl/history.html. 1
93APSTUD-3422Show differences in synchronize window extremely slow.Synchronize files to bring up the Synchronize window. A list of files will show up in the preview window. Right click on any file that needs updating and "Show differences". The software will hang for a LONG time before bringing up the text differences window. These are the exact steps I used to produce the issue: 1. Click on the Project Explorer tab. 2. Click on a project. 3. Right click and deploy app. 4. Synchronize window shows up showing a list of files. 5. Right click on any file that need updating. 6. Click on Show Differences. This is where it hangs. The files I work with range in anywhere from 1K to 150K. The 1K files takes a few seconds to compare. The 150K files takes longer than 5 mins (I gave up after 5 minutes).8
94APSTUD-3427Add cherry-pick support for GitWe currently have no action/command/UI support for doing cherry-picks for Git, so I have to resort to the command line for this. It'd be nice to add it.1
95APSTUD-3430Improve the PHP outline to display a true nesting of HTML nodesWe should display PHP nodes nested correctly inside HTML nodes, and vice-verse.1
96APSTUD-3431Remove the dependency com.aptana.core plugin has on com.aptana.index.coreThe dependency is causing a lot of inconvenience on what com.aptana.index.core could depend on and should be removed. 1
97APSTUD-3435Show better error messages when invoking a command without the proper Ruby gem InstalledIf the end user invokes the command "Convert HTML to HAML" without the appropriate Ruby Gem installed, Aptana returns an error via the scripting console. Steps to Replicate : 1) Open Aptana Studio 2) Open a saved HAML file 3) Invoke the command Commands > HAML > Convert HTML to HAML Actual Results : The editor returns this message to the scripting console : {noformat} [2011-09-08 15:47:22] An error occurred while processing the invoke block for the command Convert HTML to HAML in /home/qatester/Desktop/newest/configuration/org.eclipse.osgi/bundles/357/1/.cp/bundles/haml.ruble/commands/convert_html_to_haml.rb: (Errno::EPIPE) Broken pipe org.jruby.exceptions.RaiseException: (Errno::EPIPE) Broken pipe org.jruby.RubyIO.write(org/jruby/RubyIO.java:1330) org.jruby.RubyIO.<<(org/jruby/RubyIO.java:1476) #<Class:0x1008e14b7>.define_command(/home/qatester/Desktop/newest/configuration/org.eclipse.osgi/bundles/357/1/.cp/bundles/haml.ruble/commands/convert_html_to_haml.rb:10) org.jruby.RubyIO.popen(org/jruby/RubyIO.java:3529) #<Class:0x1008e14b7>.define_command(/home/qatester/Desktop/newest/configuration/org.eclipse.osgi/bundles/357/1/.cp/bundles/haml.ruble/commands/convert_html_to_haml.rb:9) org.jruby.RubyProc.call(org/jruby/RubyProc.java:268) org.jruby.RubyProc.call(org/jruby/RubyProc.java:232) {noformat} Expected Result : The editor could return a concise error message. Suggested approach is to add a function which can be called before running the ruby command that will check for the existence of the specified gem. If the gem is missing, it will alert the user, ideally with directions on how to install the gem. We would then need to update existing commands where appropriate (approximately 10).13
98APSTUD-3456TiStudio - Git clone from http:// address instead of git://A customer is requesting to add "http" git access in TiStudio. Sometimes, if you are behind a firewall, git is inaccessible this way {code} git clone git@github.com:appcelerator/KitchenSink.git {code} but you can still use "http" {code} git clone http://github.com/appcelerator/KitchenSink.git {code} The "http" is not currently working in Ti Studio. This is a feature request to add it.1
99APSTUD-3482Confirm Token Scanners are updated to handle multiple queries for the same tokenRelated to bug APSTUD-3457, we need to confirm that all Token Scanners have been updated such that querying the scanner multiple times for the same token results in the same returned length and offset.1
100APSTUD-3483PDT/WST editors are not available in an Aptana PHP project# Set "Project Natures" to PHP/WEB # Select a file->right click->Open with ## There is no PHP editor (PDT) *.php files, though the Aptana one shows ## There is no WST JS editor/html editor/css editor for *.js/*.html/*.css file # Users are unable to select the PDT/WST editor from the "Others" menu 8
101APSTUD-3492Use Aptana theme for Aptana editors only[Originally posted here|http://stackoverflow.com/questions/7438868/eclipse-use-aptana-theme-for-javascript-editor-only] When I use Aptana in Eclipse, I like the Cobalt theme for my Javascript. However, this theme ends up making my SVN diff-ing nearly impossible for my Java files, because the background is dark blue, and the text is black in the compare editor. I've look all over the preferences in Eclipse, and can't figure out a way to only use the Aptana Cobalt theme for editing my Javascript files. Here are the things I've tried: - I've made the Aptana JavaScript editor the default for ".js" files - I've made the default for ".txt" and ".java" the normal editors (non-Aptana, whatever they are) - I've tried setting the theme, and making sure that General > Appearance > Colors and Fonts still has all the defaults - I've verified that if I changed the theme to something with a white background, my diff-ing editor gets changed and becomes readable What else can I do?! I just want to use Aptana for Javascript, not my default diff theme.8
102APSTUD-3521Button on the toolbar for option "Show white space characters"Create a "quick" button on the toolbar for Aptana option "Show white space characters", please Not easy go to the menu every time for Show/Hide white space characters1
103APSTUD-3537Content assist may be unreadable with dark aptana themesWhen editing .js (or ruby, or .html) -files with a dark aptana theme, the content assist window has still white background and (unfortunately) white text for all content assist choices but the current one. This stays even with "invasive themes". This does not happen with e.g. pydev, where the background of content assist is white and text is black (despite a dark theme)8
104APSTUD-3541Changing selection in Project Explorer causes redraw/selection issueThis is a very annoying one. It looks like based on my project selection, new buttons are getting added/removed from the Project Explorer toolbar (specifically sync buttons). As a result I see two issues: 1. The bar goes from being to the right of the view name/tab to underneath it 2. It messes up my ability to select some of the projects intermittently by clicking on them with the mouse. I am forced to use the keyboard to select the "mobile" project. When Local Filesystem or "web" project are selected, it draws the toolbar underneath with disabled up/down and up+down blue arrows. When my "mobile" project is selected, they don't show at all, but there are sync options under the "deploy" menu on the toolbar. "mobile" does have a connections set up for syncing.5
105APSTUD-3552Drop files from the remote view to a local folderHi, it would be very usefull if i could drag some files or folders from the remote view to a local folder on the desktop or any other folder in the fiel browser. The other way from the local folder to the remote view already works fine! This would be very usefull if you have to download some files without to configure the ftp connection in filezilla or any other FTP Client. I searched for already reported tickets, but don't found anythink. If i missed it, sorry for that! Greetings Leo5
106APSTUD-3559Editor scrolling to far left of viewport when typing on long lines of codeWhen I type on a long line of code, usually a string with some variables in there (big SQL queries), the editor will keep the cursor in its position but get confused and scroll back to the left (exactly as if I had pushed on the "home" key but keeping the cursor at the current location). I've attached a screen shot to show how big my h-bar is and what my variables look like. I've noticed that it happens more often when I have some inline ifs ($var ? true : false) injected in there but this isn't always the case.40
107APSTUD-3560Content assist content wraps short of popup edgeIf you have methods with long parameter descriptions, sometimes the auto complete popup it very hard to read, as shown in the attached screenshot (the code is from the Zend Framework). The content should wrap according to the width of the popup (it appears to break early here)13
108APSTUD-3562jQuery CA missing DeferredThe jQuery CA menu does not propose Deferred. Steps to Replicate : 1) Open Aptana Studio. 2) Open a JavaScript file in a Web project. Verify project Context Menu > Properties > Project Build Path has jQuery 1.6.2 enabled and the jQuery ruble is installed. 3) Enter the code : {noformat} $(document).ready(function() { jQuery.| }); {noformat} 4) Invoke CA (CTRL-Space) at the pipe. Actual Results : CA does not include Deferred. Expected Results : CA should include Deferred. 21
109APSTUD-3563jQuery CA missing .promiseThe jQuery CA menu does not propose .promise. Steps to Replicate : 1) Open Aptana Studio. 2) Open a JavaScript file in a Web project. Verify project Context Menu > Properties > Project Build Path has jQuery 1.6.2 enabled and the jQuery ruble is installed. 3) Enter the code : {noformat} $(document).ready(function() { .| }); {noformat} 4) Invoke CA (CTRL-Space) at the pipe. Actual Results : CA does not include .promise. Expected Results : CA should include .promise. 21
110APSTUD-3565Create sub-folder under temp for our temporary filesIf i work with a lot of FTP connections, after some hours my /tmp directory is getting very nasty. If you have some other tools that work directly in /tmp, you don't find your own files anymore. (see the screenshot) I think it would be a very nice feature if i could determain a custom path for this files. Normaly on Linux you have /tmp/aptanavfs/... . You can see other tools like pulse, orbit, ssh, ... always using their own subdirectory.8
111APSTUD-3567SELECTED_TEXT in snippet doesn't work as expectedAssume the following snippet: {code} snippet 'Ti.API.debug' do |s| s.trigger = 'd' s.expansion = 'Ti.API.debug(${0:${TM_SELECTED_TEXT}})' end {code} If you type d+TAB, it inserts: {code} Ti.API.debug(}) // (note the extra '}') {code} If instead, you select some text and select the snippet from a menu item, i.e.: # Type and select "fred" # Select Ti.API.debug from a menu it will insert: {code} "fred"Ti.API.debug(}) {code} Expected is: {code} Ti.API.debug("fred") {code}13
112APSTUD-3569Aptana freeze while an FTP Name ConflictHi, related to APSTUD-3568. If you are pasting a File in the remote view (FTP connection) by selecting the parent folder manually, the Name Conflict window is popping up. This is correct, but this window is causing a memory peak and the complete Aptana IDE is freezing to death. It takes more than 20 secounds for one letter to show up in the input field. I am not quite sure, but i think is has something to do with Aptana waiting for the FTP LIST Command. Greetings Leo13
113APSTUD-3580Improve build time of unit test buildThe unit test build on development takes way too long. Typically over 40 minutes. We need to investigate to see if we can help speed it up at all, since the actual text execution appears to take less than 9 minutes.1
114APSTUD-3586PHP No code assist on Class::getInstance() methods{code} <?php class DemoClass { private $instance; public static function getInstance() { self::$instance || self::$instance = new self(); return self::$instance; } public function hello() { echo 'hello'; } public function world() { echo 'world'; } } ?> {code} In some context locations, the code assist may pop-up automatically to suggest available options. For example, an available list of functions, variables and constants will appear after typing a PHP arrow string '->'. Call other class methods do not work. there was no code assist when used like this {code} DemoClass::getInstance()->??? (??? cant tips like:hello world...methods) {code} 13
115APSTUD-3595PHP: Context Information fails when there is a string in the parameter listI have 3 Projects, one "core" project, and two related projects, I added the core project to the "Project References" and the "PHP Buildpath". Context information for static PHP functions which is in the core project doesn't show up, if i'm in a file of a related project, but context information popup for functions in the same project. But I'm able to open the declaration. Now even some classes in the current project stopped showing the Context Information Popup. Aptana gets unusable for me, i'm considering to move back to Eclipse PDT... --- The problem always appears if I want to open the context information popup if there is a string in the function call (see my comments). e.g.: <?php $test = str_replace( *when I now open the context information I see '$search, $replace, $subject, $null'* later, when the popup was closed: $test = str_replace("test", *when I now open the context information I see nothing*20
116APSTUD-3599Add "Go to Matching Bracket" to Javascript editorNULL8
117APSTUD-3610java.sql.SQLException: Database 'aptanaDB' not found.See in a user's log file. We should be able to avoid this message, no? {code} !ENTRY com.aptana.usage 4 0 2011-10-05 23:34:12.996 !MESSAGE An error occurred while shutting down the database !STACK 0 java.sql.SQLException: Database 'aptanaDB' not found. org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source) org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Unknown Source) org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source) java.sql.DriverManager.getConnection(DriverManager.java:525) java.sql.DriverManager.getConnection(DriverManager.java:193) com.aptana.usage.AptanaDB.shutdown(AptanaDB.java:172) com.aptana.usage.UsagePlugin.stop(UsagePlugin.java:74) org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:843) java.security.AccessController.doPrivileged(Native Method) org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:836) org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:501) org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:550) org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1097) org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:597) org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257) org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215) org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:266) org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:690) org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:588) org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:415) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:198) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:592) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) {code}1
118APSTUD-3621Ubuntu: Aptana won't save editor tab sizesI've just noticed a strange behaviour of Aptana. If I try to set the tab size for any of the editors, when I close the IDE all my preferences get overridden with the default ones. Additionally, the preferences for the YAML editor are lost right after closing the Settings window. This is very weird.8
119APSTUD-3650Create unit tests for snippet tab stop issueRelated fix for APSTUD-3390....needs a set of unit tests.1
120APSTUD-3653PHP Editor plugin throws exceptions on startupThis is happening on development branch. I get an exception on every startup about the PHP editor plugin. It typically means that some code is taking too long in the start method and needs to be pulled out to do it's work in a Job. {code} !ENTRY org.eclipse.osgi 2 0 2011-10-12 10:46:13.968 !MESSAGE While loading class "com.aptana.editor.php.PHPEditorPlugin$2$1", thread "Thread[Thread-1,6,main]" timed out waiting (5022ms) for thread "Thread[Worker-9,5,main]" to finish starting bundle "com.aptana.editor.php_3.0.3.qualifier [743]". To avoid deadlock, thread "Thread[Thread-1,6,main]" is proceeding but "com.aptana.editor.php.PHPEditorPlugin$2$1" may not be fully initialized. !STACK 0 org.osgi.framework.BundleException: State change in progress for bundle "reference:file:/Users/cwilliams/repos/studio3-php/plugins/com.aptana.editor.php/" by thread "Worker-9". org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087) org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297) org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440) org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268) org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) com.aptana.editor.php.PHPEditorPlugin$2.runInUIThread(PHPEditorPlugin.java:119) org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException ... 40 more Root exception: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087) org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297) org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440) org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268) org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) com.aptana.editor.php.PHPEditorPlugin$2.runInUIThread(PHPEditorPlugin.java:119) org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code}5
121APSTUD-3663JavaScript validation fails trying to parse minified JS as TODO markerI get this everytime I try to save, or sometimes it pops up after a while. Really annoying. Errors occurred during the build. Errors running builder 'JavaScript Validator' on project 'Chrome-CSSEditor'. assertion failed: Marker property value is too long: TODO "},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function()... Clearly something is trying to parse minified JS as TODO marker. The file that causes is this: https://raw.github.com/ajaxorg/ace/master/build/demo/kitchen-sink.js5
122APSTUD-3666Change the actions defined in Samples view to use commands and handlers so they could be invoked from the portalCurrently Samples view defines the actions programmatically using the old IAction mechanism, and they are not accessible through the command service. We should update them to be defined through plugin.xml using commands and handlers. 1
123APSTUD-3675JavaScript Comment Auto-completeThe JavaScript editor will not auto-complete common or JSDoc comments if any non-whitespace character precedes the opening token on its line. Steps to Replicate : 1) Open Aptana Studio 2) Open a saved JavaScript file 3) Place either opening token, /* or /**, on a line, after any non-whitespace character(s), e.g., {noformat} function fun85() {/**| } {noformat} 4) Type enter Actual Results : The editor will not auto-complete the comment, i.e., {noformat} function fun85() {/** | } {noformat} Expected Results : The editor should auto-complete the comment, i.e., {noformat} function fun85() {/** * */ } {noformat} 8
124APSTUD-3688Hook up rails server launching to new servers viewNow that the servers view is back, we should hook up the rails application launching to use it as it used to in RadRails.1
125APSTUD-3689Exclude files from the deploy tools using paths rather than by file typesCurrently there is only an option to cloak file types from the deployment assistent. But very often it's not only file types with sould be excludet. For an example. I have a PHP project remote and local, i have for example local other usernames and passwords for the database connection. So i have to skip on every deployment the system/config/dbconfig.php or i would kill the live system. Currently there is no way, because cloaking *.php is not realy an option. I think a textfield where i can store the complete path would be very useful. The syntax could be like in an .gitignore file.5
126APSTUD-3691Using XULRunner in AptanaHi friends, i just upgraded my computers to the new ubuntu release and now i have some troubles with the XULRunner based parts of Aptana. In all new releases of all major Linux distributions the XULRunner packages are disabled because of some seriously security issues. I asked in the #ubuntu irc why the package is removed from the current version and they told me that. They forwarded me to the Mozilla Website where they wrote that sience Firefox 4 the XULRunner is disables be default because of this security issues. (1.9.2 is only for Firefox 3.*) I know it's very much to ask, but i think it's a good idea if Aptana could run without the XULrunner. It's for advanced users not a big problem to reinstall the libs directly from the page, but if it's a mayor security rist, i think twice about that. And if i don't du that, the complete GIT integration is nut useable and i only got some error messages like that here: {quote} Unhandled event loop exception No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] {quote} Here are the IRC logs {quote} (17:57:53) Leo Unglaub: hi, can someone please explain to me why the xulrunner ins available in natty, but in the new version not? (17:58:01) Leo Unglaub: http://packages.ubuntu.com/de/natty/xulrunner-1.9.2 (17:58:28) cajunspice: xul is a major security risk (17:58:48) Leo Unglaub: cajunspice: have you sources where i can read more about this? (17:59:50) cajunspice: I saw it on the mozilla site, leo-unglaub, xul was such a risk that in firefox 4.0 and above remoe xul is disabled (18:00:12) Leo Unglaub: cajunspice: ah, okay (18:01:13) cajunspice: leo-unglaub: it appears it will be staying disabled, because remote xul is too much of a backdoor (18:01:36) Leo Unglaub: cajunspice: okay, thanks ! {quote} Greetings Leo8
127APSTUD-3694JavaScript Document Object Content Assist missing documentMode, getElementsByNameJavaScript document object content assist does not contain : documentMode, getElementsByName (reference : http://www.w3schools.com/jsref/dom_obj_document.asp) Steps to Replicate : 1) Open Aptana Studio 2) Open a saved JavaScript file 3) Enter "document." Actual Results : The content assist menu does not include the property documentMode and the method getElementsByName. Expected Results : The above reference expects support of this property and method. 5
128APSTUD-3695JavaScript Window Object Content Assist Missing some height, offset and screen properties, and createPopup methodThe JavaScript window object content assist menu is missing many properties and methods. Steps to Replicate : 1) Open Aptana Studio 2) Open a saved JavaScript file 3) Type (without the double-quotes) "window." Expected Results : The JavaScript window object content assist menu should include closed, defaultStatus, document, frames, history, innerHeight, innerWidth, length, location, name, navigator, opener, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, screen, screenLeft, screenTop, screenX, screenY, self, status, and top, and the methods alert, blur, clearInterval, clearTimeout, close, confirm, createPopup, focus, moveBy, moveTo, open, print, prompt, resizeBy, resizeTo, scroll, scrollBy, scrollTo, setInterval, and setTimeout. Actual Results : Content assist is missing the following properties: * outerHeight * outerWidth * pageXOffset * pageYOffset * screenLeft * screenTop * screenX * screenY Content assist is missing the following method: * createPopup8
129APSTUD-3696Set "Mark Occurrences" as "off" by defaultAs the title says, make the default setting off.1
130APSTUD-3697Turn off "Link with Editor" in outline by defaultSet the default for this setting as "off"1
131APSTUD-3699"Mark Occurrences" freezes IDE on large filesSteps to reproduce: # Copy ext-all-debug.js into a new Web project # Open up the file # Turn on "Mark Occurrences" # Click on the first instance of "function" # note that the annotations in the side bar come up quite quickly, but profiling, it shows a significant performance hit in ThemeingDamagerRepairer. # At this point the IDE is unusable for quite some time (10-30 seconds) See screenshots for details. I noticed that if I only allowed 100 annotations to be created, performance seemed acceptable (though still kinda slow)1
132APSTUD-3713GIT functions are not working on linux systemsHi friends, related to this report http://jira.appcelerator.org/browse/APSTUD-3691 the most GIT functions are not working on Linux systems. I realized is the first time after upgrading to the new ubuntu version with is based on Gnome3. (Unity is also based on gnome3, but not using the gnome shell) For example if i try to commit somethink i got the following error message: {quote} Unhandled event loop exception No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] {quote} In the other topic Michael Xia sayed that aptana has no need for the XULrunner, but i think there is still a dependency left, because without it's not working. I asked in the developer irc channels an i am not the only one with this problem. (also some kde users) Here is the error from the aptana log file. {quote} !ENTRY org.eclipse.ui 4 0 2011-10-24 18:47:55.569 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] org.eclipse.swt.SWT.error(SWT.java:4109) org.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1739) org.eclipse.swt.browser.Mozilla.create(Mozilla.java:656) org.eclipse.swt.browser.Browser.<init>(Browser.java:119) com.aptana.git.ui.internal.actions.CommitDialog.createDiffArea(CommitDialog.java:237) com.aptana.git.ui.internal.actions.CommitDialog.createDialogArea(CommitDialog.java:158) org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:760) org.eclipse.jface.window.Window.create(Window.java:431) org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089) org.eclipse.jface.dialogs.StatusDialog.create(StatusDialog.java:203) com.aptana.git.ui.internal.actions.CommitDialog.create(CommitDialog.java:202) org.eclipse.jface.window.Window.open(Window.java:790) com.aptana.git.ui.internal.actions.CommitHandler.doExecute(CommitHandler.java:34) com.aptana.git.ui.internal.actions.AbstractGitHandler.execute(AbstractGitHandler.java:108) org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) org.eclipse.equinox.launcher.Main.main(Main.java:1384) {quote} I am not very good in java, i am more a C/C++ guy, but i think CommitDialog.java:237 is calling the internal browser and this is throwing the error. Greetings Leo8
133APSTUD-3722Unable to acquire parser pool for content type: "com.aptana.editor.text.content-type.generic" when opening Studio log fileSteps to reproduce: # Open up Studio, Troubleshooting, and turn on INFO-level logging for com.aptana.parsing # Open the Studio log file # Switch to another file # Switch back to the log file. See this in the log. It appears that we don't need to be doing any parsing in a test file, so we don't need to ask for a parser. It was been suggested we could override a few methods in TextEditor to do nothing in the this case, but that needs to be investigated for side effects.5
134APSTUD-3723PHP: Open Method (ala PDT) functionalityPDT has an "Open Method" that allows the user to navigate to any method/class in any PHP file in a project/workspace. This makes it a lot easier to locate a particular method or browse methods when looking the right method to use. The list of methods is filterable (find as you type) and allows wildcards ({{*}}) as well to allow more flexible method listings. Now that Aptana Studio 3 conflicts with PDT so that PDT's editor no longer works properly, it would be great if Aptana Studio added this feature to further round out the workflow that was lost from PDT. For reference, the "Open Method" feature in PDT is launched via the following shortcut by default: {{CTRL+SHIFT+M}}1
135APSTUD-7615OpenShift: auto sign-in should not block the UIWhen user is previously signed in, we try to authenticate the info and bypass the sign-in wizard page if successful. However, currently that operation happens between the switching of wizard pages and blocks the UI with beachball. We should move it to show as a progress bar in the sign-in page so user could cancel the operation if needed. 8
136APSTUD-3761Add GIT Tagging FeatureIt would be really nice to add the ability to Tag releases in GIT using the Aptana menu items. Currently you can add Branches, Push, Pull, Commit, etc. but there is no support for tagging. The workaround right now is to open the terminal console and manually type in something like this: git tag -a 1.23 -m "1.23" git push --tags It would really save me time if we could just do this from the dialog menus. Thanks for considering this feature! Sincerely, Leighton Whiting1
137APSTUD-3767Allow to manually change content assist delay to 0Would be great to allow to manually change content assist delay to 0 (for JS and CSS editors). It's very annoying to, for example, type "b", then wait for CA to apear, then type "o" to get to "border". And when typing "bo" quickly CA will not appear at all. See this thread https://aptanastudio.tenderapp.com/discussions/problems/3318-306-cssjs-code-hinting-broken-after-update1
138APSTUD-3776Investigate replacement for HTML Tidy ValidatorThis item manifested after pasting the set of all HTML tags from the website : http://www.w3schools.com/tags/default.asp Into the HTML editor and arranging them in a valid order (list is included below to speed replication) : <!--...--> <!DOCTYPE> <a> <abbr> <acronym> <address> <applet> <area /> <b> <base /> <basefont /> <bdo> <big> <blockquote> <body> <br /> <button> <caption> <center> <cite> <code> <col /> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <font> <form> <frame /> <frameset> <h1> <h2> <h3> <h4> <h5> <h6> <head> <hr /> <html> <i> <iframe> <img /> <input /> <ins> <isindex> <kbd> <label> <legend> <li> <link /> <map> <menu> <meta /> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <param /> <pre> <q> <s> <samp> <script> <select> <small> <span> <strike> <strong> <style> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <title> <tr> <tt> <u> <ul> <var> <xmp> Steps to Replicate : 1) Open Aptana Studio 2) Open saved HTML file 3) Paste above list of HTML tags into editor and begin to arrange in valid order. I continue to witness performance issues and Studio unresponsiveness. Actual Results : When I discovered this Sunday evening, several malfunctions occurred sequentially. First was a NPE, then a Heap error, and finally Studio turned unresponsive until shut down from the task manager and opened with a new workspace without the offending file, which does not contain an excessive number of tags -- perhaps Studio is representing this as an unbalanced tree. Below is the stack trace for the second error : !ENTRY org.eclipse.ui 4 0 2011-10-30 21:59:24.432 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.OutOfMemoryError: Java heap space at org.eclipse.swt.widgets.ScrollBar.setThumb(ScrollBar.java:874) at org.eclipse.swt.custom.StyledText.setScrollBars(StyledText.java:9294) at org.eclipse.swt.custom.StyledText.resetCache(StyledText.java:7787) at org.eclipse.swt.custom.StyledText.redraw(StyledText.java:7370) at com.aptana.editor.common.extensions.LineBackgroundPainter.drawHighlightLine(LineBackgroundPainter.java:281) at com.aptana.editor.common.extensions.LineBackgroundPainter.paint(LineBackgroundPainter.java:146) at org.eclipse.jface.text.PaintManager.paint(PaintManager.java:298) at org.eclipse.jface.text.PaintManager.keyPressed(PaintManager.java:305) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:161) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099) at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1808) at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:4498) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4193) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) Expected Results : Files this size should not consume excessive resources. It appears this is related to HTML Tidy. We need to investigate what functions HTML Tidy currently still performs (that are not filtered out) so that we can scope how hard it will be to replace it. 8
139APSTUD-3778ScriptDoc Autocomplete for JavaScript functionswhen we type scriptdoc comments start with /**\n bellow a class or a function in studio 1.5 or 2.0 , IDE will insert the class or function doc like this: /** * doSomething xxxxxxx xxxxxx description * @param {String} param1 * @param {Object} param2 * @return {Object} */ function doSomething(param1,param2){ } this function is useful when doc our code 13
140APSTUD-3786Add analytics to the portal actionsAttache the analytics ping to the portal 'dispatch'. The ping should indicate the portal's controller and action (e.g. 'portal.browser.openExternalBrowser')1
141APSTUD-3792JavaScript Code Formatter: More options for Spaces - ParenthesesThe JavaScript Code Formatter is nice, but it's missing a few key options for me to use it. Specifically, there are only two options for Spaces - Parentheses (Before/After). However, parentheses are used for multiple reasons - if, function declarations, function calls, etc. My desired spacing for parentheses doesn't apply to all of these. For example, if I set Before = 1 and After = 0, I get: {code} var a = function (b, c, d) { // BAD Don't want the space before function arguments here alert (b + c + d); // BAD Don't want the space before invokation arguments here } var c = a ? 10 : 20; var bb = { "a": 1, "b": 2, "c": 3 }; for (var i = 0, j = 0; i < 8 && j >= 0; i++, --j) { // GOOD This space is good alert ("(a " + a + ",j " + j + ")"); // BAD Don't want the space before invokation arguments here } if (xyz[1] >= 5) { // GOOD This space is good {code} If I set Before = 0 and After = 0, I get {code} var a = function(b, c, d) { // GOOD alert(b + c + d); // GOOD } var c = a ? 10 : 20; var bb = { "a": 1, "b": 2, "c": 3 }; for(var i = 0, j = 0; i < 8 && j >= 0; i++, --j) { // BAD I want a space here alert("(a " + a + ",j " + j + ")"); // GOOD } if(xyz[1] >= 5) { // BAD I want a space here {code} If there were separate Parentheses rules for function arguments, function invocation, and for/if/etc clauses, it'd be much nicer.20
142APSTUD-3793Simplify the extension point for contributing samples to Samples viewShould make it more similar to how project template is defined, where the local path is a zip file instead of the root of a directory where the samples reside.1
143APSTUD-3795Remove Firefox installation requirement on Studio startup and instead show prompt on Firefox debug launchCurrently, we prompt the user for an install of Firefox if we can't find it at startup. We should instead do the check and install if they've chosen to debug with Firefox.8
144APSTUD-3803Create wiki page describing how to add samples via a rubleNULL1
145APSTUD-3816PHP: Add hyphened variables to double click selection delimitersWhen you double click on something like "$foo-bar.baz", depending on where you click, Aptana will select text. If you click to foo, Aptana will select "$foo", if you click on "bar" or "baz" Aptana will select only that text, without dash or period. You can see Aptana and Notepad++ comparison in the attachment. Someone suggested it a while ago in https://aptanastudio.tenderapp.com/discussions/problems/560-doubleclick-selection-problem We have determined that we should be supporting the addition of the hyphened text (i.e. -bar, in this example)5
146APSTUD-3819Jump to parent classes and methods from outline and editorI use php editor, so everything below is about it. In old Aptana there was a two great features, that I was using regulary: * Ouline shows a parent methods and classes. And there was an possibility to find some method with search bar(in outline) and jump to it right from quick outline (new tab scrolled to the selected method or class was opened) * I was able to jump to parent method from the editor - a litle green triangle was displayed near the inherited method (on the left sidebar. Just right to the line numbers) and a new tab was opened when Ctrl+click on it (or just click, can't remember). Newly opened tab was scrolled to the selected method, just like the outline 'jump to parent' feature. Will this features return in the new Aptana Studio?1
147APSTUD-3828Save all does not trigger "Automatically sync my changes with the remote site"I use "Automatically sync my changes with the remote site" -> "Automatically sync from my machine to the remote site": if I use "Save", Aptana actually upload file on save, that's what I need. I often modify more files, before saving. So I always use "Save all" (I use a shortcut for it, and it is the only way I'm used to save) to save them all in once, but in this case Aptana does not upload any file. I ask for "Save all" triggering "Automatically sync..." on each files that is saved; else I suggest a "dedicated" command, if most people don't like the behavior I ask for. Thank you for attention, Fabio.3
148APSTUD-3838Simultaneous FTP Transfers?I may be just missing the setting, but it there somewhere in Aptana where I can set the number of simultaneous file transfers to speed up FTPing folders or large numbers of files? For example, in Filezilla, I can download/upload 5-7 files at once, which greatly speeds up transfer times. Is this possible?1
149APSTUD-3844Cannot get Aptana Studio to run on RHEL 6.1 Desktop x86_64Plugin installs fine from the update site, but when I restart I get: An internal error has occurred. No more handlesNative code library failed to load. (java.lang.UnsatisfiedLinkError: /home/cmccann/.eclipse/ibm.software.delivery.platform_8.0.0_2046934809/plugins/com.aptana.swt.webkitbrowser.linux.x86_1.0.0.1295409059/os/linux/x86/libcefjni.so (/home/cmccann/.eclipse/ibm.software.delivery.platform_8.0.0_2046934809/plugins/com.aptana.swt.webkitbrowser.linux.x86_1.0.0.1295409059/os/linux/x86/libcefjni.so: undefined symbol: gzopen64)) I suspect the problem is related to running a 32-bit eclipse in a 64-bit environment, but I can't find any mention of this problem being resolved anywhere.8
150APSTUD-3861Add "Push tags" command for gitWe need to be able to explicitly push tags to a remote.1
151APSTUD-3870Very little content in JS Outline when editing JSHint and JSLint1. Create a new empty Web Project 2. Add the attached files 3. Open the files in editors 4. View outline for each file It is expected that the outline will have lots of content, but only a few items appear.13
152APSTUD-3871Create utility class to auto-composite wizard imagesWhen creating a wizard, we manually composite a foreground image onto a background image, but this is an intensive process. Instead, create a utility class that auto-composites a supplied top image against a standard background image on demand. Thus, if a person wants to create a new wizard image, they need not manually have to do so. It will center the top image (horizontally and vertically) on the bottom image8
153APSTUD-3919@formatter:off not working in eclipse pluginWhen I use //@formatter:off and //@formatter:on in JS editor content between them is still formatted. Testcase: original code {code} // @formatter:off define([ "dojo", "dojo/on", "dojo/aspect", "dojo/_base/lang", "dijit/form/ValidationTextBox", "dijit/form/Form", "dijit/form/Button" ], function(dojo, on, aspect, lang) {}) // @formatter:on {code} when formatted, all items in array are merged into one line8
154APSTUD-3924Ability to control the auto closing of quotes and brackets separatelyAt the moment there is a setting found under Preferences > Aptana Studio > Editors in the 'Typing' page called 'Auto-close matching character pairs'. This auto closing quotes and brackets however I would like the ability control each of these separately so auto closing quotes could be disabled but auto closing brackets could be kept turned on.1
155APSTUD-3925dynamic language selection (multi language support)Hi friends, i would be very nice if Aptana would support multiple (scripting) languages in one file. In the current aptana version a *.php file supports syntax highliting and auto completion for php source. In *.html files we have the support for HTML. But very often you have template files where the markup is mixed. I addet you an example as attachment. In this example i have a .html file and the full html support, but the php code is not realy good readable and i have no support for php functions, ... . So it would be very cool if aptana would see that in the html file the <?php starts php code and switch to the php syntax mode for this part. The same think is possible with inline css code. What do you think? thanks and greetings Leo1
156APSTUD-3933Add "Connection Manager..." link to Remote View menuCurrently, you can only open the connection manager when right-clicking on a connections node in a project. Suggest adding another menu option to the Remove View, as shown here. There might be yet another place for it in the menu bar, though I'm not sure where. When done, please update the documentation here: http://wiki.appcelerator.org/display/tis/Managing+FTP+Connections2
157APSTUD-3935Remote View FTP Node And Project Connections FTP Node Exhibit Slightly Different BehaviorThe FTP utility nodes at Remote View and Project Connections possess slightly different behavior. Steps to Replicate : 1) Open Aptana Studio 2) Open the Remote View and select a valid FTP connection 3) Open the Connection Node Context Menu 4) Note the availability of both the New From Template option and the New > File option 5) Select a project with an associated FTP , expand the project node, expand the Connections node and open the FTP Node Context Menu 6) Note only the New > File option is available, not the New From Template option. To open the New From Template option, the end user must descend one level below the FTP Node into the FTP folder structure. Actual Results : The New From Template option is only available via the Remote View FTP node; from a Project Connections FTP Node the end user must select a folder or the workspace within the FTP node to access the New From Template option (please see capture at http://screencast.com/t/Lagaq2pQPa). Expected Results : The Remote View and the Project Connections Node should exhibit the same behavior. 3
158APSTUD-3938Ctrl+Shift+/ has two available commandsWhen pressing Ctrl+Shift+/ I've got the menu with commands to select: Insert Block Comment 1 Select Tag Content 2 It's not very nice to use the set of commands for the often used hotkey, I think.5
159APSTUD-3941Ship PHP, Ruby and Python features separately from StudioLet me choose them which I need!1
160APSTUD-3942FTP + PDT (PHP Build Path)Rightclick deploy upload (@see attachment) is disabled for all files that match the PHP Build Path Expression, or if none is set, its disabled for all files.8
161APSTUD-3947Find Bar in split-screen editors copies text from wrong editorWhen the multiple editors are visible, the find bar in all editors does not operate correctly. For example, when you open the find bar on the leftmost editor, the cursor will jump to the right editor's find bar and will copy the text from the other editor's search into the now-selected editor's search. Searching in one bar will also copy that search into the other editor.8
162APSTUD-3958Unable to open remote SQL files using DTP in Aptana 3I have an SFTP connection set up, through which I am able to successfully edit and save files using the PHP, XML and Ruby editors (file names prefixed with (sftp) in tabs). However, after installing DTP from the Helios site and attempting to open a remote SQL file, I get the following error and stack trace. eclipse.buildId=unknown java.version=1.6.0_29 java.vendor=Apple Inc. BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US Framework arguments: -keyring /Users/dan/.eclipse_keyring -showlocation Command-line arguments: -os macosx -ws cocoa -arch x86 -keyring /Users/dan/.eclipse_keyring -consoleLog -showlocation Error Mon Dec 12 16:12:23 EST 2011 Unable to create editor ID org.eclipse.datatools.sqltools.sqlscrapbook.SQLScrapbookEditor: No file system is defined for scheme: sftp org.eclipse.core.runtime.CoreException: No file system is defined for scheme: sftp at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:50) at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getFileSystem(InternalFileSystemCore.java:65) at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:107) at org.eclipse.core.filesystem.EFS.getStore(EFS.java:470) at org.eclipse.datatools.sqltools.internal.sqlscrapbook.editor.SQLScrapbookEditor.doSetInput(SQLScrapbookEditor.java:205) at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3043) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2606) at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3061) at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3088) at org.eclipse.datatools.sqltools.sqleditor.SQLEditor.init(SQLEditor.java:629) at org.eclipse.datatools.sqltools.internal.sqlscrapbook.editor.SQLScrapbookEditor.init(SQLScrapbookEditor.java:170) at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:798) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2863) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2768) at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2760) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2711) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2707) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2691) at com.aptana.ide.ui.io.navigator.actions.EditorUtils$1$1.runInUIThread(EditorUtils.java:90) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3593) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3286) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 5
163APSTUD-3961Studio Recursively Adds Folders and Folder Contents As Subfolders Upon FileSystem Rename Copy/PasteIf you select a file from the Local FileSystem node, select Rename, copy and paste the folder name in place, then proceed or close the dialog window, Studio recursively adds folders and folder contents as subfolders, perhaps to the maximum operating system depth. Steps to Replicate : 1) Select a folder from Local FileSystem node. 2) Select Context Menu > Rename. 3) CTRL+C folder name string. 4) CTRL+V in place. Actual Results : Please see capture at http://www.screencast.com/t/xxorH2jOc. Even if you close the dialog window, Studio recursively adds the folder and its contents as subfolders, perhaps to maximum folder depth. Expected Results : this action should not have any effect on the file system. 5
164APSTUD-3967PHP Variable, Function and Class documentation requires a save before it appears in content assist with Build Participation.When working on a php file in the editor any documentation that is done for variables, functions, and classes does not appear in the item's content entry. This is the case for both single line and multi line comments. I'm expecting this is an actual issue since the Javascript editor picks up new documentation and changes to existing documentation without requiring a save. Steps to Reproduce: 1) In the php editor define a class in a php file. {noformat} class Bird{ function fly(){ echo "I'm flying!"; } } {noformat} 2) Check the content assist for the class, notice that no documentation is present. 3) Add a comment above the class. Use the multi-line documentation style. {noformat} /** * A class for representing birds. */ class Bird{ function fly(){ echo "I'm flying!"; } } {noformat} 4) Check the content assist for the class. Note whether or not there is documentation present. 5) Save the file 6) Check the content assist for the class. Note whether or not there is documentation present. Actual Results: No documentation is present on step 4 but documentation is present on step 6. Expected Results: Documentation is present on step 4. The same also occurs with variables and functions. On a possibly related note: Creating a TODO comment doesn't cause the todo icon (clipboard) to appear next to the line numbers until after saving when working with php. Like the above issue, the javascript editor picks up the todo immediately without requiring a save. If these two issues are separate entities I can open a new issue for the TODO tags in php.20
165APSTUD-3969Move Eclipse base for Studio to 3.7 and remove support for Eclipse 3.53.0.x/1.0.x are built against Eclipse 3.6.2. For 3.1/1.1, it makes sense to move to Eclipse 3.7.1 and drop support for Eclipse 3.5. 13
166APSTUD-3971XML outline does not clear upon replacing current content with erroneous contentPlease see capture at http://www.screencast.com/t/JY49KOr4. The XML Outline does not clear if you replace all current content by pasting in syntactically erroneous content. Steps to Replicate : 1) Open Aptana Studio 2) Open XML file 3) Add content that will register in the Outline 3) Select the entire file and paste in syntactically erroneous content Actual Results : The Outline freezes in its initial state. Expected Results : The Outline should clear when this happens. 5
167APSTUD-3974NPE In CommonSourceViewerConfigurationThis NPE turned up in the log file after performing some work on the formatter, however this does not seem to be related to that function : !ENTRY org.eclipse.ui 4 0 2011-12-14 12:28:48.339 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException at com.aptana.editor.common.CommonSourceViewerConfiguration.getEnabledTextHoverDescriptors(CommonSourceViewerConfiguration.java:615) at com.aptana.editor.common.CommonSourceViewerConfiguration.access$0(CommonSourceViewerConfiguration.java:607) at com.aptana.editor.common.CommonSourceViewerConfiguration$TextHover.getHoverRegion(CommonSourceViewerConfiguration.java:673) at org.eclipse.jface.text.TextViewerHoverManager.computeInformation(TextViewerHoverManager.java:140) at org.eclipse.jface.text.AbstractInformationControlManager.doShowInformation(AbstractInformationControlManager.java:1120) at org.eclipse.jface.text.AbstractHoverInformationControlManager$MouseTracker.mouseHover(AbstractHoverInformationControlManager.java:519) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:201) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:211) at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:65) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) Steps to Replicate : I haven't reproduced this by re-performing the formatter work. Actual Results : Studio threw a NPE. Expected Results : Studio should be NPE-free. 3
168APSTUD-3979XML matching tag highlighting failsThe XML editor will not highlight a tag pair upon selecting the closing tag of an adjacent pair. Steps to Replicate : 1) Open Aptana Studio 2) Open an XML file 3) Enter an adjacent tag pair, e.g., <tag></tag> 4) Place caret on the closing tag Actual Results : Editor does not highlight the tag pair. Expected Results : Editor should highlight tag pairs. 13
169APSTUD-5656Ctrl+1 comment fixes do not follow PEP8When PEP8 is enabled, Ctrl+1 comment fixes do not follow the E261 PEP8 rule (at least two spaces before inline comment). Steps to reproduce: - In any Python file, put the same import twice to create a warning (it can be done with most warnings). - On the line that has a warning, press Ctrl+1 and select "Reimport" - There's only one space before the generated comment and a PEP8 E261 warning appears.5
170APSTUD-5655Code formatter conflicts with PEP8 E261When a line ending with a comma (for example, when each entry in a dict or a list is on its own line) is followed by an inline comment and the code formatter is enabled, the line is always changed to put a single (or none, depending on the configuration) whitespace between the comma and the comment. This contradicts the PEP8 rule E261 "at least two spaces before inline comment" and creates a warning if PEP8 is enabled. When there's an inline comment, the code formatter should put two whitespaces after the comma.5
171APSTUD-3983Show dialog warning user of diminished content assist experience when they turn off project auto-build supportIf a user turns off auto-building for their workspace, indexes will no longer be updated. We should be able to display a dialog, perhaps via a preference listener, alerting the user that content assist will suffer when they turn off auto-build in the project menu.8
172APSTUD-3990Editor Does Not Auto-Indent Between Braces After Deleting Enclosing and Enclosed Matched CharactersIf you have a pair of braces enclosed by quotes and containing a matched pair, deleting the inner and outer characters in a certain sequence will cause a newline between the braces to move the caret one space forward instead of adding a (possibly indented) newline. Steps to Replicate : 1) Open Aptana Studio 2) Open an editor 3) Enter a double quote (or a single quote if the editor matches these), brace and any character the editor will auto-match so you have something like the sequence "{()}" 4) Delete the first quote, then the second quote, then the enclosed pair so the caret is at the pipe : {|} 5) Enter newline Actual Results: The caret will move forward as if you entered the right arrow key. Expected Results: The editor should add a (possibly indented) newline between the braces. To Do: We expect to do the following as part of this ticket * Ascertain what the current behavior is * Decide what the behavior ought to be * Modify the current behavior to be in line (if necessary) 13
173APSTUD-3996HTML Editor Matches Double Quotes In Text Areas, Strings and commentsHTML.6.001 : the HTML editor auto-matches double-quotes in the text area. Steps to Replicate : 1) Open Aptana Studio 2) Open an HTML file 3) Enter a double-quote between the body tags Actual Results : The editor will auto-match the double-quote. Expected Results : The HTML editor is not supposed to auto-match single or double-quotes in text, strings, or comments 8
174APSTUD-3997JavaScript content assist not automatic from between contiguous bracesJavaScript content assist is usually automatic from inside a code block, however not when the code block consists of two contiguous braces. Steps to Replicate : 1) Open Aptana Studio 2) Open a JavaScript file 3) Enter "function fun() {|}" and enter the character 'a' at the pipe Expected Results : A content assist pane with alert and Array should pop up automatically. Actual Results : CTRL+Space is necessary to bring up the content assist pane. 8
175APSTUD-3998HTML Editor Requires Restart To See Changes Made To Referenced JavaScript FileIf the end user creates an HTML file with a JavaScript file associated via a Script tag src attribute, changes to the JavaScript file will not be visible until the HTML editor is closed and restarted. Steps to Replicate : 1) Open Aptana Studio 2) Create a JavaScript file "scriptSource.js" with the content : {noformat} function scriptFun1() {} {noformat} 3) Create an HTML file in the same folder with the content : {noformat} <html> <head> </head> <body> <script src="scriptSource.js"></script> </body> </html> {noformat} 4) Resolve the JavaScript file in the outline so scriptFun1() is visible 5) In the JavaScript file, rename the function to scriptFun2() and save 6) In the HTML file, try to refresh the Outline via the collapse/expand node or by editing the src attribute value Actual Results : The new function is not visible in the HTML outline until the editor is closed and restarted. Expected Results : src JavaScript file changes should be available after the JavaScript file is saved. Proposed solution: * Listen for changes to referenced file * Refresh the outline, preserving the open/closed states of both the HTML and JS nodes40
176APSTUD-4036The last line in a file is not clickableHi, i had this problem in the last couple of weeks. Sometimes there is a line at the end of a file with can't be selected. In the screenshot you see that there is a line after the ?> but i can't select or delete this line. Especially in PHP this is a problem because this whitespace can mess up the script becuase there is already content send to the browser. (if output buffering is disabled = default). Thanks and greetings Leo5
177APSTUD-4040Syntax errors don't appear in ruler until after save with Build Participation. When working with the Build Participation feature in php I noticed that syntax errors don't appear on the ruler (next to the line numbers) when created. Saving the file will cause the errors to be displayed in the problems pane as well as on the ruler. Steps to reproduce: 1) In a PHP file define a function that concatenates several strings together {noformat} $size = "small"; $color = "red"; function flight($size, $color){ echo "This " . $size . " " . $color . " bird can fly."; } {noformat} 2) Remove one of the concatenation operators. {noformat} <?php $size = "small"; $color = "red"; function flight($size, $color){ echo "This " . $size . " " . $color " bird can fly."; } ?> {noformat} 3) Note that no syntax error is identified by the application. 4) Save the file. Actual results: the syntax error is displayed in the ruler after the save. Expected results: the syntax error is displayed in the ruler prior to the save.13
178APSTUD-4043Encoding problem with Git Commit MessageThe problem is that when I git commit with comments in Japanese, I get an unreadable return by git log on terminal(utf-8). (I can read in aptana studio history window but it is unreadable by other tools). Also, one repository that was make another machine (ex:ubuntsu) and it has commit message in UTF-8(Japanese). I Pull to Aptana Studio and the history is unreadable. Steps to reproduce: 1. Create a project that is initialized for git 2. Create a file and commit it. 3. Add a commit message in Japanese. Ex. "これは、gitのコミットメッセージです。" 4. In the project terminal run git log Expected result: The git log should display without error. Actual result: The git log is unreadable.8
179APSTUD-4059String constructor should not appear off of string instancesJS.4.004 of the wiki Web Acceptance Suite says global methods should not appear in Content Assist list for quoted string objects, however if you enter this in a JavaScript file : "message". (quotes and dot operator included), the methods eval and String, which are classified as Global Functions at : http://www.w3schools.com/jsref/jsref_obj_global.asp, will appear in Content Assist. Steps to Replicate : 1) Open Aptana Studio 2) Open a JavaScript file 3) Enter (including quotes and the dot operator) "characters". Actual Results : Content Assist will include the methods eval and String, which is classified as a Global Function at : http://www.w3schools.com/jsref/jsref_obj_global.asp. Expected Results : Wiki item JS.4.004 states Content Assist from quoted string objects should not contain Global methods. 8
180APSTUD-4061Errors break code foldingWhen using code folding in a PHP document if the editor find an error in my code it unfold all folded block of codes (functions, classes..) # Paste the following into a document: {code} <?php class MyClass { public function get_id() { } public function get_id2() { } } ?> {code} # Fold both functions # Select "public" at the beginning of one of the functions and replace it with the letter "p". This will force an error in the document. # Both functions unfold.8
181APSTUD-4063JavaScript: Instance method in SDOCML file missing in content assist# Create a new SDOCML file in a web project # Paste in the following: {code} <?xml version="1.0" encoding="UTF-8"?> <javascript> <class type="$$"> <constructors> <constructor> <description>cssquery</description> <parameters> <parameter name="selector" type="String" usage="required"> <description>CSS selector</description> </parameter> <parameter name="elBaseElement" type="Document|Element" usage="optional"> <description>Base DOM Element</description> </parameter> </parameters> <return-types> <return-type type="$$" /> </return-types> </constructor> </constructors> <methods> <method name="clearCache" scope="instance"> <description>Clear cache</description> </method> <method name="debug" scope="static"> <description>For debug purpose</description> <parameters> <parameter name="fCallback" type="Function" usage="required"> <description>Callback function</description> </parameter> <parameter name="nRepeat" type="Number" usage="optional"> <description>Amount of number for repeat</description> </parameter> </parameters> <return-types> <return-type type="Void" /> </return-types> </method> </methods> </class> </javascript> {code} # Save this file and open a new JavaScript file. # Type "$$()." clearCache is missing from the proposals list2
182APSTUD-4067Aptana Debugger 1.7.2 incompatible with the last Firefox 9.0.1Can NOT debug web files in Firefox 9, because the Aptana Debugger 1.7.2 is incompatible with Firefox 9 and forbidden.13
183APSTUD-4068Theme export not escaping certain characters, creating an invalid theme fileI exported a theme to a file, reinstall an Aptana Studio, but when I try import it, nothing happened. {code} !ENTRY com.aptana.plist 4 0 2012-01-05 09:21:37.910 !MESSAGE (Build 3.0.0.1319725619) [ERROR] The content of elements must consist of well-formed character data or markup. !STACK 0 org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup. com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) javax.xml.parsers.DocumentBuilder.parse(Unknown Source) com.aptana.plist.xml.XMLPListParser.parse(XMLPListParser.java:85) com.aptana.plist.PListParserFactory.parse(PListParserFactory.java:33) com.aptana.theme.TextmateImporter.parse(TextmateImporter.java:139) com.aptana.theme.TextmateImporter.convertToProperties(TextmateImporter.java:72) com.aptana.theme.TextmateImporter.convert(TextmateImporter.java:55) com.aptana.theme.preferences.ThemePreferencePage.widgetSelected(ThemePreferencePage.java:1318) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) org.eclipse.jface.window.Window.runEventLoop(Window.java:825) org.eclipse.jface.window.Window.open(Window.java:801) org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:211) com.aptana.theme.internal.OpenThemePreferencesHandler$1.runInUIThread(OpenThemePreferencesHandler.java:43) org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) !ENTRY com.aptana.theme 4 0 2012-01-05 09:21:37.921 !MESSAGE (Build 3.0.0.1320258654) [ERROR] null !STACK 0 java.lang.NullPointerException com.aptana.theme.TextmateImporter.convertToProperties(TextmateImporter.java:74) com.aptana.theme.TextmateImporter.convert(TextmateImporter.java:55) com.aptana.theme.preferences.ThemePreferencePage.widgetSelected(ThemePreferencePage.java:1318) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) org.eclipse.jface.window.Window.runEventLoop(Window.java:825) org.eclipse.jface.window.Window.open(Window.java:801) org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:211) com.aptana.theme.internal.OpenThemePreferencesHandler$1.runInUIThread(OpenThemePreferencesHandler.java:43) org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) {code}5
184APSTUD-4071Remove the code which automigrates Studio 2.x projects now we are on Studio 3.1Currently at startup, we automatically try to migrate any Studio 2.x projects to Studio 3. That's probably no longer necessary after one year and 7 releases later. Removing it should help startup performance on a workspace with a lot of projects. 1
185APSTUD-4072A JS parser node may incorrectly include a comment offset when reporting its end-offsetHave this code in a JS file: {code} // f.event.add(this, "click._submit keypress._submit", function(a) { }) // while(mll.length) { // (mll.pop())(); // } {code} Manifesting the error can be done by trying to format the code. You will notice that the output will be: {code} // f.event.add(this, "click._submit keypress._submit", function(a) { }); // } {code} 8
186APSTUD-4078Toggle Block Selection does not work with word wrapThe Toggle Block Selection is not working. I am currently on 3.1.0.201201031814, but the issue has been present for several months.13
187APSTUD-4080There is no "length" property in jQuery content assistThere is no "length" on list, though it exists in the API: http://api.jquery.com/length/. There may be similar items that are missing.8
188APSTUD-4083Inconsistent JavaScript Syntax ErrorThe JavaScript editor will show a syntax error contingent upon the order of the typed characters. Steps to Replciate : 1) Open Aptana Studio 2) Open a JavaScript file 3) Enter "..;" 4) Note the syntax error to the left 5) Delete the addition from Step 3 and enter a ";", then prepend this with ".." Actual Results : Studio reports a syntax error after Step 3 however not after Step 5 Expected Results : Entering the same content should cause the same validation results. 5
189APSTUD-4107CSS Formatter does not place an 'At-Rule' in a new line (like @media)The CSS formatter is handling the @media rule correctly for trailing spaces after rule, however if there is a rule before an @media rule the formatter acts as if there is an end of file after the antecedent rule : try formatting : "h1{}p{}@media print{}h2{}@media screen{}@media print, screen{}h3{}h4{}". By doing so you will also notice the formatter does not apply the configured number of lines after a rule if that rule is at the end of the file. Steps to Replicate : 1) Open Aptana Studio 2) Open an empty CSS file 3) Open Preferences > Aptana Studio > Formatter > CSS > Blank Lines and set Lines After CSS Rule to a non-zero value 4) Type "h1{}p{}@media print{}h2{}@media screen{}@media print, screen{}h3{}h4{}" 5) Select Source > Format Actual Results : The formatter does not add the selected number of lines after a rule prior to an @media rule. Expected Results : The formatter should add the selected number of lines after all rules. 8
190APSTUD-4109PHP: Show functions inside conditionals in Outline viewCurrently it is not possible to view functions defined inside a conditional in the outline view. They appear to be ignored. {code:title=php|borderStyle=solid} if ( ! class_exists( 'Foo' ) ) { class Foo { static public $foo; public function foo() { } } } {code} without if () it works: {code:title=php|borderStyle=solid} if ( class_exists( 'Foo' ) ) return; class Foo { static public $foo; public function foo() { } } {code}8
191APSTUD-4116Functions with parameters do not display arg assist if they have an associated sdoc block with no @param tagsGiven the following block of code {code} /** * @return {Object} */ function abc(a, b, c) {} {code} We should show arg assist for the "a, b, c" parameters. However, since the sdoc comment does not list the parameters, the type inferencer assumes the function has no arguments. We should perform a sanity check and use what is in the code if no @params are defined. If one or more @params are defined, then the sdoc will win in that case.8
192APSTUD-4117Function return types should be inferred when associated sdoc comment does not include an @return tagIn the following code snippet {code} /** * @param {String} a * @param {String} b */ function abc(a, b) { return a + b; } {code} We say the return type of "abc" is "void". The type inferencer sees the sdoc comment and does not infer the return statement. Since there is no @return tag in the sdoc comment, the return type becomes "void". In this case, if a function has return statements, we should infer their types, using any @param type hints as appropriate.8
193APSTUD-4121JS inferencing is not picking up implied globals within function bodiesIn the following code, "def" should appear as a property of Window, but does not. However, using a similar construct outside of a function body does work as send by "ghi". {code:title=Implied Global.js} function abc() { def = 10; } ghi = 10; {code}5
194APSTUD-4127JS inferencing shows instances of conventional prototype inheritance as the constructors prototypeIn the following snippet, conventional prototype inheritance is being setup on the MyClass function. When the "new" operator is used with MyClass, it returns a new instance of whatever type is hanging off of MyClass.prototype. When viewing properties on "instance", the content assist popup will display the type as "MyClass.prototype", but it should show as "MyClass". We have a class that is responsible for formatting content in the context info popup. We should simply remove ".prototype" from types, for display purposes only. {code:title=Prototype Inheritance.js} function MyClass() {} MyClass.prototype.property = 10; MyClass.prototype.method = function() {}; var instance = new MyClass; {code}1
195APSTUD-4129Behavior of JSLint validator options does not match those from JSLint.comJSLint supports the addition of comments to the top of a JavaScript as a means of setting JSLint options. The comment: /\*jslint white:true\*/ instructs the validator to 'Tolerate messy white space', which more specifically should be set to 'true if strict whitespace rules should be ignored'. (Full documentation of JSLint options here: http://www.jslint.com/lint.html#options) However, in Aptana Studio the opposite is occurring. So setting 'white' to true causes whitespace to become important, rather than be ignored as expected. I've found that others have mentioned this behavior on Stack Overflow: http://stackoverflow.com/questions/6893045/jslint-options-doesnt-seem-to-work-on-aptana-3 http://stackoverflow.com/questions/8597253/problems-with-jslint-options-in-aptana-studio-3 I've also found the same reversed logic with: 'plusplus', 'undef', 'regexp', 'nomen', and 'newcap' (and there are likely others). Other observations: - the logic for 'sub' is correct - 'continue' signals a 'Bad option' warning. - 'eqeq' errors do not seem to be caught. 8
196APSTUD-4130Replace/Find doesn't work with in a few cases dealing with whitespaceIn a previous version I was able to use a regex to remove trailing whitespace using the find and replace feature. Since latest release I have been getting an error saying that the "Expected text for replace to be equal to the selected text". For my regex I am using '[ ]+$' replacing with ''. The single quotes in my example are not typed in the box, but rather printed here for clarity.5
197APSTUD-4139Latest Studio updates has broken eclipse RSE project supportUpgraded Studio this morning and now I can't access any of my RSE projects. I use a Mac OSX desktop however all my projects are on a Linux VM, I use the Eclipse RSE (Remote System Explorer) plugin to allow me to connect to my projects via SSH. When I first launch Titanium all the RSE projects are closed (as expected), once I open any of the projects it opens (shows the files etc), then instantly closes again. I've checked the workspace .metadata/.log but no errors are being generated. Titanium development on halt for me at the moment :(8
198APSTUD-4142Misspelling In FormatterThe formatter contains a misspelling in the tab size configuration dialog. Steps to Replicate : 1) Open Aptana Studio 2) Open Preferences > Aptana Studio > Formatter 3) Select a language and highlight the Indentation tab 4) Set the Tab Policy drop down selection to Tabs Only 5) Set the Tab Size to 0 Actual Results : The dialog will return the message "Number should be greater then or equal to 1" (keyword is "then"). Expected Results : The dialog should return the message "Number should be greater than or equal to 1" (keyword is "than"). 1
199APSTUD-4145Refresh the view after an file uploadHi, if i drag and drop a file from a local folder to an remote folder, the upload works fine, but the remote view is not reloaded, so you don't see the uploaded file. I think i would make sence if you reload the target folder after the upload was finished. thanks and greetings Leo2
200APSTUD-4152Default colors in the diff view are not readableThe diff view is not readable with the default color theme. The black bars on the black background have zero contrast with each other.5
201APSTUD-4166Formatting PHP nested in JS/CSS code may cause code corruption {noformat} sample php file with html and javascript inside: ----test.php file---- <html> <body class="<? echo $class_name;?>"> <script> $(function() { $("#<? echo $id;?>").click(); }); </script> </body> </html> ----test.php file---- after formatting we have: ----formatted test.php file---- <html> <body class="<? echo $class_name;?>"> <script> $(function() { $("#<? echo $id;?> ").click(); }); </script> </body> </html> ----formatted test.php file---- As we see javascript is broken now. After '$id;?>' formatter insert new line. html part is still ok.for {noformat} 13
202APSTUD-4170CSS validation errors on valid CSS3 (linear-gradient)The CSS validator is reporting errors for the properties: -ms-linear-gradient -o-linear-gradient linear-gradient see screenshot. This was reported and marked as fixed in #APSTUD-1495 but I can't re-open the ticket and I can't add attachments to it so I've created a new one instead.3
203APSTUD-4175Line numbers off in preferences, but always go on when opening new editor windowI have line numbers off in preferences. This is ignored and line numbers are shown when opening new html, js, css files (probably others). Doesn't seem to affect .py files. Only way to get rid of line numbers is to right-click on line numbers in context menu after opening new file. (Strangely, this doesn't do anything first time, but works after right-clicking and unticking line numbers at a second attempt.) After closing a file, when opening it again the line numbers are back. I was using 3.0.5 before and this was not a problem.5
204APSTUD-4178JS Outline in JS and HTML editors does not match when using the same JS code# Create a new web project # Create a new JS file # Paste in the following content {code}(function(global) { var iadt = function(selector, context) { // return new Innr(); }; var Innr = function(selector, context) { this.selector = selector; this.version = '1.1'; }; iadt.sayHello = function() { alert('sayHello()'); }; iadt.inner = new Innr(); iadt.prototype = iadt.inner; global.iadt = iadt; })(window); iadt.staticfn = function() { alert('iadt.static'); } iadt.inner.newfn = function() { alert("newfn"); } function test() { var c = new iadt(); iadt.staticfn(); alert(c.version); c.newfn(); // c. --> no proposal // iadt. --> no proposal } {code} # Create a new HTML document # Create a script element # Paste the above code into the script element The outline in JS and the outline below the script element in the HTML outline do not match (see attached images). 5
205APSTUD-4179Samples View Does Not Reflect All Edits Or Project DeletionsSample edits now show up immediately in the Sample view, but if the end user deletes the Sample project the Samples view still displays the entry until the end user cycles Studio (please see capture at http://www.screencast.com/t/sVXo2DW2jdU). Also, editing a Sample then undoing edits and saving causes some odd effects (please see capture at http://www.screencast.com/t/7Knbg4TqE). Steps to Replicate : 1) Open Aptana Studio 2) Select File > New > Ruby Project, select a project name, click the Next button, select the Ruble Template, then click Finish 3) Edit <ProjectName> > samples > project_samples.rb > project_sample string and save 4) Undo the change from Step 3 and save again 5) Delete the new project from Step 2 Actual Results : The Samples view does not reflect the edit from Step 4 or the deletion from Step 5. Expected Results : The Samples view should reflect all edits and Sample deletions as well. 13
206APSTUD-4183Support rbenv usageI'm using aptana studio 3 in my mac, osx lion, and I'm using rbenv to install rubies, but when I try to run the debugger in aptana I always got this error: /Users/nebiros/.rbenv/shims/ruby: line 4: exec: rbenv: not found I already set some environment variables in the aptana ruby debug configuration window: RBENV_ROOT: /Users/nebiros/.rbenv RUBYLIB: /Users/nebiros/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1 I'm trying to run this command: - Program: /Users/nebiros/.rbenv/shims/bundle - Interpreter Arguments: -d - Program Arguments: exec rake dreadful_dog:process_content --trace -- -f ./assets/test_ssss_content.zip -d /tmp - Working Directory: /Users/nebiros/Projects/dreadful_dog20
207APSTUD-4184css formatter breaks the font shorthand by adding an extra space at every formatHi, Formatting css turns this code: {code:none} h4 { font: bold 12px/1.5 Tahoma; } {code} into: {code:none} h4 { font: bold 12px /1.5 Tahoma; } {code} which breaks the property in some browsers (i remember having this problem with some IE versions before) and it doesn't stop there, every time I format the same code it adds an extra space there. for instance this is the output after 10 times formatting the code: {code:none} h4 { font: bold 12px /1.5 Tahoma; } {code} 8
208APSTUD-4185Content assist for nested JS in HTML auto-inserts and suggest incorrect proposalsWhile validating another ticket, I tried typing in the following HTML: {code} <input onkeydown="if (event.keyCode == 13) document.getElementById('MG2-submit').click();"/> {code} I ran into a number of issues. # When I typed "event." it became "eventhis." # On another occasion, when I typed "event.", it became "event$$." # After I managed to get around that, proposals off of "event." showed global properties. Ideally, this would show some of the Event properties. # As I continued to type "event.ke", I started seeing global proposals starting with 'e'. Continuing more would give a strange alternation of globals starting with the last letter to showing all globals again. # Once I got to "document.", I got a list of globals again instead of document properties. # Continuing to type "document.getElementById" showed the same behavior when I was typing "event.keyCode": alternation of all globals and globals starting with last typed letter. # When I typed "document.getElementById('|')" and my cursor was at '|', I starting seeing HTML attribute proposals. Note that '\'' and ')' were auto-inserted, so I did not type those. # As I typed the contents of the string in getElementById, I saw the global-and-globals-with-last-letter behavior described above. # Likewise when typing ".click" I suspect this is due to the JS being in an unparsable state with JSContentAssistProcessor dropping back to lexeme-based location type calculation.8
209APSTUD-4187Listen for new ruby/rails projects and run core stubber against themif a new ruby project gets added we should try to run the core stubber logic for that project. 99% of the time it will just use the global ruby install or one of the previously stubbed/indexed installs detected. But it may introduce a reference to a new ruby install (via rvm) that we haven't stubbed out and indexed, meaning CA won't be populated for that install (until restart).8
210APSTUD-4189Add Dynamic Help for JS* Update Examples for better formatting Display JS metadata in Help View (see Aptana Studio 2.x for example) {panel:title=Properties} @name //description Parameters _parameter/@name (parameter/@type_): parameter/description Returns return-value Remarks remarks Example 1: ... Example 2: ... Supported Platforms browser/@platform: browser/@version, ... Specification specification/@name: specification/@version See also * JavaScript Core Reference * HTML DOM 0 Reference * HTML DOM 2 Reference * Titanium Mobile Reference (if applicable) {panel} Hover and Dynamic help for functions is identical to properties, except it shows the method signature. See http://www.eclipse.org/articles/article.php?file=Article-DynamicCSH/index.html for information on how to contribute dynamic help. See ScriptDocHelper and JSFileLanguageService for the majority of the implementation, including both the top content, and the list of resources at the bottom. Suggest we try running any JS code blocks through the formatter.20
211APSTUD-4191Download Docs & Guides as an Eclipse Help Book as part of the build processExport the text here as an Eclipse help file using the wiki export process, and embed it into the built product. https://wiki.appcelerator.org/display/guides/Home It is not clear if this export can be done automatically, or has to be done on demand (on demand would be okay for now).13
212APSTUD-4193Add icon to "Open HTML docs" for current content assist entry for JS languageAmend the current hover tooltip to add a link the HTML documentation for the specified item (if available). For core HTML, JavaScript and CSS functionality where the documentation is provided by standard metadata files, the URL can be constructed to point to In-Studio help. See Studio 2 for an example of this: {code} /** * * @param topics * @param lowerName */ private void addSelectorHelpTopics(ArrayList topics, ArrayList generalTopics, String lowerName) { ElementMetadata el = environment.getElement(lowerName); String anchor = ""; //$NON-NLS-1$ if(el != null) { anchor = el.getFullName(); String url = "/com.aptana.ide.documentation/html/reference/api/CSS.element." + el.getFullName() + ".html"; //$NON-NLS-1$ //$NON-NLS-2$ HelpResource hr = new HelpResource("'" + lowerName + "' Selector", url); //$NON-NLS-1$ //$NON-NLS-2$ topics.add(hr); } HelpResource index = new HelpResource("CSS Selector Reference", "/com.aptana.ide.documentation/html/reference/api/CSS.index-elements.html#" + anchor); //$NON-NLS-1$ //$NON-NLS-2$ generalTopics.add(index); } {code} For other elements (like Titanium properties) perhaps there is a mechanism by which we can provide a custom resolver to generate the URL. It could also be that this might be provided by an extension point or class property when the contribution happens. See https://wiki.appcelerator.org/display/tools/In-Studio+Documentation for details.13
213APSTUD-4194Add Dynamic Help for HTMLDisplay HTML metadata in Help View (see Aptana Studio 2.x for example)13
214APSTUD-4195Add Dynamic Help for CSSDisplay CSS metadata in Help View (see Aptana Studio 2.x for example)13
215APSTUD-4196Improve additional information popup for HTMLFrom https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel:title=Elements} @name //description Supported Platforms: browser/@platform: browser/@version {panel} {panel:title=Attributes} @name: @type //description Supported Platforms: browser/@platform: browser/@version {panel}8
216APSTUD-4197Improve additional information popup for CSSFrom https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel} @name //description Supported Platforms: browser/@platform: browser/@version {panel}8
217APSTUD-4198Improve additional information popup for JavaScriptFrom https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel:title=Properties} @name: @type-of-property (i.e. Boolean) //description Supported Platforms: browser/@platform: browser/@version {panel} {panel:title=Functions} @name(parameter/@name: parameter/@type, ...): @return-type-of-function //description Supported Platforms: browser/@platform: browser/@version {panel}8
218APSTUD-4212Externalize UI strings in bundle-dev rubleNULL2
219APSTUD-4213Externalize UI strings in capistrano rubleNULL2
220APSTUD-4214Externalize UI strings in coffeescript rubleNULL2
221APSTUD-4215Externalize UI strings in CSS rubleNULL2
222APSTUD-4216Externalize UI strings in cucumber rubleNULL2
223APSTUD-4217Externalize UI strings in engineyard rubleNULL2
224APSTUD-4218Externalize UI strings in github rubleNULL2
225APSTUD-4219Externalize UI strings in HAML rubleNULL2
226APSTUD-4220Externalize UI strings in Heroku rubleNULL2
227APSTUD-4221Externalize UI strings in HTML rubleNULL2
228APSTUD-4222Externalize UI strings in jQuery rubleNULL2
229APSTUD-4223Externalize UI strings in JS rubleNULL2
230APSTUD-4224Externalize UI strings in JSON rubleNULL2
231APSTUD-4225Externalize UI strings in Markdown rubleNULL2
232APSTUD-4226Externalize UI strings in math rubleNULL2
233APSTUD-4227Externalize UI strings in mercurial rubleNULL2
234APSTUD-4228Externalize UI strings in PHP rubleNULL2
235APSTUD-4229Externalize UI strings in Python rubleNULL2
236APSTUD-4230Externalize UI strings in Rails rubleNULL2
237APSTUD-4231Externalize UI strings in RSpec rubleNULL2
238APSTUD-4232Externalize UI strings in Ruby rubleNULL2
239APSTUD-4233Externalize UI strings in SASS rubleNULL2
240APSTUD-4234Externalize UI strings in shell script rubleNULL2
241APSTUD-4235Externalize UI strings in source rubleNULL2
242APSTUD-4236Externalize UI strings in text rubleNULL2
243APSTUD-4237Externalize UI strings in titanium rubleNULL2
244APSTUD-4238Externalize UI strings in WebFont rubleNULL2
245APSTUD-4239Externalize UI strings in wordpress rubleNULL2
246APSTUD-4240Externalize UI strings in XML rubleNULL2
247APSTUD-4241Externalize UI strings in YAML rubleNULL2
248APSTUD-4242Externalize UI strings in zen-coding rubleNULL2
249APSTUD-4245Add CSS index content to the Index ViewCSS content is indexed in web projects. The information store there should be included in the Index View under a separate top-level CSS node.8
250APSTUD-4246Add HTML index content to the Index ViewHTML content is indexed in web projects. The information store there should be included in the Index View under a separate top-level HTML node. * Show classes and ids under the top-level node * Content provider and label provider for HTML * Use content assist model as nodes for view * Query index for content * Some icons13
251APSTUD-4247Git not using user.name and user.email from .gitconfigI noticed that when I do a commit using the gui (specifically the Commit command in the App Explorer gear menu), git isn't using the user.name and user.email from the .gitconfig in my home directory. I'm running the Studio 3 Beta plugin in Galileo on Windows XP, and I'm using msysgit 1.7.1. When I do the same commit from the git bash prompt, it works fine. Is there a separate global git config for Studio 3? Is there an easy way to sync this with the .gitconfig in my home directory?8
252APSTUD-4249Errors Upon Invoking CoffeeScript CommandsAPSTUD-4069 is solved, however invoking the commands listed in APSTUD-4069 results in Scripting Console errors. Steps to Replicate : 1) Open Aptana Studio 2) Open a CoffeeScript file 3) Select Commands > CoffeeScript > Insert Heredoc """ Comment, Commands > CoffeeScript > Insert Heredoc """ Quotes or Commands > CoffeeScript > Insert Heredoc ''' Quotes Actual Results : The Scripting Console will show the message : C:\DOCUME~1\QATEST~1\LOCALS~1\Temp\command_temp_2602825636456998601.sh: line 3: column_number: command not found C:\DOCUME~1\QATEST~1\LOCALS~1\Temp\command_temp_2602825636456998601.sh: line 4: syntax error near unexpected token `(' C:\DOCUME~1\QATEST~1\LOCALS~1\Temp\command_temp_2602825636456998601.sh: line 4: `whitespace = " " * (column_number.to_i - 1)' Expected Results : The these commands should insert the relevant Heredoc text. Proposed solution: * Convert 8 commands to inline Ruby, 7 of which are easy and 1 which is complicated 20
253APSTUD-4252Studio infers wrong remote path after using both "Go Into" and having FTP time outYou can reproduce this if you do the following steps. # Connect to an FTP server and work remotely. # Select a sub folder and use the "go into" function. # Now wait a little bit and let the ftp connection timeout. # After that do something again--Save a file or refresh a filter. Now Aptana tries to enter every file as it's a directory. You don't even have to double click a file, just selecting it in the file tree makes aptana to try to enter the file as a folder. {quote} 421 Timeout - try typing a little faster next time ---------- RECONNECTING - FTP xxxxxxxxxxxxxxxxxxxx ---------- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 3 of 60 allowed. 220-Local time is now 14:34. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. ftp> USER xxxxxx 331 User xxxxxx OK. Password required ftp> PASS ******** 230-User web49u1 has group access to: web49 230 OK. Current restricted directory is / ftp> PWD 257 "/" is your current location ftp> CWD /htdocs 250 OK. Current directory is /htdocs ftp> TYPE I 200 TYPE is now 8-bit binary ftp> NOOP 200 Zzz... ftp> TYPE I 200 TYPE is now 8-bit binary ftp> CWD /htdocs/system/functions.php 550 Can't change directory to /htdocs/system/functions.php: Not a directory ftp> PWD 257 "/htdocs" is your current location ftp> PASV 227 Entering Passive Mode (188,40,92,46,50,116) ftp> LIST . 150 Accepted data connection 226-Options: -a -l 226 14 matches total ftp> CWD /htdocs/system/functions.php 550 Can't change directory to /htdocs/system/functions.php: Not a directory ftp> PWD 257 "/htdocs" is your current location ftp> PASV 227 Entering Passive Mode (188,40,92,46,22,183) ftp> LIST . 150 Accepted data connection 226-Options: -a -l 226 14 matches total ftp> CWD /htdocs/system/initialize.php 550 Can't change directory to /htdocs/system/initialize.php: Not a directory {quote} Here you have some FTP logs. Greetings Leo8
254APSTUD-4268Studio Editor Adds Superfluous Line NumberPlease see capture at http://www.screencast.com/t/ZWAZKhXWMit2. Since upgrading to Titanium Studio 1.0.8, the Ruby editor adds a superfluous, inactive line number after a defined construct at the end of the file. Steps to Replicate : 1) Open Aptana Studio 2) Open a Ruby file or any file Studio handles 3) Add any defined construct such as a function definition, if statement or loop to the end of the file Actual Results : The editor adds an extra line number after the end of the construct. This did not happen in version 1.0.7 Expected Results : The new line numbers should only extend to the end of the construct. 13
255APSTUD-4257Refactor JS hyperlinksCurrently we have a single JSHyperlink class. However, that class' open method contains a number of strategies that used to determine how to locate the declaration associated with the link. Each strategy should be broken out into separate hyperlink classes.13
256APSTUD-4267HTML Colorization DisappearsIf you open an HTML file twice, once from the FileSystem node and once from the Project Explorer, then close one of those files, the colorization of the remaining file will disappear. Steps to Replicate : 1) Open Aptana Studio 2) Open an HTML file from the Local FileSystem node in Project Explorer 3) Open the same file from Step 2 in a project 4) Close one of the file instances Actual Results : Colorization will disappear from the remaining file instance. Expected Results : Colorization should remain. 5
257APSTUD-4269Run As > Ruby application on a Rakefile doesn't workIf you right-click on a Rakefile and choose Run as > Ruby application (or debug), that fails.8
258APSTUD-4270NPE in DeploySettingsHandlerThe log from ticket APSTUD-4265 shows a separate NPE issue from the handler to show FTP deployment settings. {code} !ENTRY org.eclipse.ui 4 0 2012-01-24 14:33:54.330 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException com.aptana.deploy.ftp.internal.handlers.DeploySettingsHandler.execute(DeploySettingsHandler.java:79) org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) {code} 3
259APSTUD-4272Double entries in the JS content assist dialog(this was detected on the build-participant branch) Have this code in a JS editor (notice the extra new-lines): {code} var myVar = 9; function myFunction (argument) { } my| <<<< code assist here {code} You will notice the the CA displays double entries for `myVar` and `myFunction`.21
260APSTUD-4278Determine what was the root cause last time the "editor scrolling" issue occurredWe've seen this issue years ago, but need to retrace back through old code and commits to figure out what happened. Ideally, this should lead to how to make a reproducible test case.13
261APSTUD-4281As a developer I want to be able to turn on and off specific validators for build vs reconcileWe need some way to turn off validators individually, and in particular between build vs reconcile. This stems from the poor performance of the JS validators during large builds. They should default to be on for reconcile (only the ones currently on by default) and off for build (likely the same for the CSS/HTML validators). We'll need a preference page similar to the validator pref page we had before (maybe just re-use/fix it to work). One suggestion is to reuse the existing pref page and instead have a table at the top with two checkbox columns, one for build and one for reconcile. A less-optimal solution is to have two separate lists, one for each type of interaction. Perhaps we should say "On Typing" as opposed to "Reconcile"? Perhaps that is more user-friendly? Tasks: * Change the pref page * Add some methods/fields to the participants to mark them as validators * Use a more sane preference key scheme to store the enable/disable * Create a migration function to migrate the old pref keys to the new scheme * Some build participants need to be unchangeable or hidden from the end user (like indexing) 40
262APSTUD-4282Improve Unit test coverage on the 'participant' branchImprove these Unitests at the 'participant' branch: * ParserPoolFactory - No coverage * ParseState - 78% (addProperty - 0%, toString - 0%) * ParserPool - 79.3% (create - 50%) * AbstractBuildParticipant - 94.3% * ReconcileContext - 43.9% (openInputStream - 0%) * UnifiedBuilder - 0% * BuildParticipantManager - 61.3% (getAllBuildParticipants - 0%) * IndexBuildParticipant - 44.8% (clean - 0%, deleteFile - 0%, getURI - 26.9%) * CSSFileIndexingParticipant - 97.1% * CSSTaskDetector - 78.4% (deleteFile - 0%) * CSSValidator - 89.3% * HTMLTidyValidator - 83% * HTMLTaskDetector - 92.7% * JSParserValidator - 87.5% * JSFileIndexingParticipant - 48.5% (processParseResults - 47.3%) * JSCAFileIndexingParticipant - 75.9% (index - 72.9%) * JSTaskDetector - 79.8% (deleteFile - 0%) * IndexManager - 83.8% * AbstractFileIndexingParticipant - 12.3% (almost all methods - 0%) * FileStoreBuildContext - 75.6% (getFile - 0%, getProject - 0%) * BuildContext - 85.3% * IndexContainerJob - 0% (all) * IndexProjectJob - 0% (all) * IndexFilesOfProjectJob - 58.2% (run - 45%) * IndexRequestJob - 44.1% (getFileContributors - 0%, belongsTo - 0%)40
263APSTUD-4285Research heap exception and excessive I/O during indexing JSSome profiling has been done already which has identified that: # A large number of strings/char[] are being held onto during indexing. I think it's safe to assume that's related to JS inferencing, but that will need to be confirmed. Once that is verified, we need to look into why that is happening. # There are a huge number of disk writes occurring during JS inferencing. I confirmed this by re-indexing the referenced project with JS indexing on and off. We know the issue is coming from JS inferencing due to the fact that Index is not designed to support reads when doing lots of writes. We will need to determine how we can avoid or how we can minimize reading from the Index during inferencing.20
264APSTUD-4289JS indexing stores duplicate user agents on properties and functionsWhile gathering stats on how JS indexing info is stored, I noticed that some properties and functions were quite large in the index (>4K). Looking at a few of these, I see that there is a large amount of user agent added to some of the entries and many of these are duplicates. So, we will need to switch over to using a set to contain user agent elements and user agent elements themselves will need equals and hashCode implementations8
265APSTUD-4292Consider caching UserAgentElements used in JS indexingDuring profiling of indexing for a large JS project, I noticed that we had a large number of allocations of UserAgentElements. There is a finite list of these, so we should be able to cache these instances, thus avoiding a large number of allocations and garbage collection steps.8
266APSTUD-4298Consider using a special token to indicate that a given JS type or member should have all user agents associated with itGiven the number of user agents we attach with inferred types and members, we should use a custom tag to indicate that the item should have all user agents associated with it. Looking at a large method entry in the index, we could cut down one entry from 3359 to 2595, for example. This may not sound significant, but in the closure-library this could potentially shave off as much as 42MB from a 71MB index given the high number of property and function counts there. This, of course, would need to be verified and should be considered an upper maximum in file size reduction8
267APSTUD-4300Consider improving the performance of StringUtil.joinDuring profiling I noticed a large number of calls to StringUtil.join. At times, this method appeared as a hot spot as well. I believe the current implementation can be improved by pre-allocating a char[] of the destination size followed by copying of the strings and delimiters into this array. This is similar to what StringBuilder is doing; however, we avoid a number of method calls and we have the advantage of knowing the resulting size a priori. Note that StringBuilder does allow the initial capacity to be defined. FWIW, I had made similar changes in ParseNode for the child arrays (replaced ArrayList with our own inline implementation) and this affected performance dramatically.8
268APSTUD-4301Reduce number of refreshes in Git Index and reduce work done during refreshPreviously I thought we could entirely remove refreshes when files change inside a git connected project. Turns out that we couldn't but there are other things we can do: - When we get resource change events, only update the changed files, don't do a full batch refresh. - Don't call batch refreshes from some actions like deleting files/folder or moving files through our UI. The connected filewatcher on the repo should pick up a file event or two to the "index" file which will trigger a batch refresh. - When we do refresh we call one process and then we spawn off 3 parallel jobs to each run another process to update our listings. We may be able to reduce the number of processes down to as low as one in most cases (or two in worst case).8
269APSTUD-4302Disable our filewatcher hooking to projects if Eclipse "Refresh using native hooks or polling" is enabledIn my Eclipse 3.7.1 install, I'm seeing a relatively new pref under General > Workspace called "Refresh using native hooks or polling". Sounds like they have implemented the same thing we did with filewatcher. If so, we should start deprecating our hooking the filewatcher to projects and use their pref and implmentation.8
270APSTUD-4935Studio Reports Error Loading Bundle Upon StartupPlease see capture at http://www.screencast.com/t/sxbJkavvg. Studio reports an error loading bundle upon opening. Steps to Replicate : 1) Open Titanium Studio Actual Results : Studio opens an error window and write this to log : !SESSION 2012-01-31 11:24:29.603 ----------------------------------------------- eclipse.buildId=unknown java.version=1.6.0_24 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Command-line arguments: -os win32 -ws win32 -arch x86 !ENTRY org.eclipse.core.jobs 4 2 2012-01-31 11:25:21.438 !MESSAGE An internal error occurred during: "Loading bundle: C:\Documents and Settings\QAtesting\Aptana Rubles\xml.ruble". !STACK 0 org.eclipse.core.runtime.AssertionFailedException: assertion failed: Bundle not serialized correctly to file C:\Documents and Settings\QAtesting\Aptana Rubles\xml.ruble\cache.yml org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:196) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:135) com.aptana.scripting.model.BundleManager$BundleLoadJob.run(BundleManager.java:159) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Expected Results : There should be no error in this scenario. It should instead be logged to a file. 5
271APSTUD-7470JSON reformat document command changes empty fileInvoking the JSON Reformat Document command will alter an empty document. Steps to Replicate : 1) Open Titanium Studio 2) Open a saved, empty JSON document 3) Select Commands > JSON > Reformat Document Actual Results : The file tab indicates the command has altered the file. Expected Results : This operation on an empty document should not cause an alteration. 5
272APSTUD-4306Double Quotes not parsing correctly when an opening curly brace '{' is placed in the quoteInside of the embedded PHP tags <?php ... ?> when using a double quote and then a curly brace and then a closing double quote the parser does not register the closing double quote. eg: "{" - this causes a problem. "a{" - this causes a problem. "{a" - this parses ok. /".*{"/ - reg exp explaining the cause of the problem13
273APSTUD-4307Coffeescript Compile and Display JS errorI installed Aptana Studio 3.0.8 on a clean Mac with coffeescript installed, copied a simple helloworld.coffee file into my new workspace folder, opened it in Aptana Studio and chose Commands -> Coffeescript -> Run -> Compile and Display JS and got this error: [2012-02-01 09:11:51] An error occurred while processing the invoke block for the command Compile and Display JS in /Applications/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/87/1/.cp/bundles/coffeescript.ruble/commands/compile_and_display_js.rb: (NoMethodError) undefined method `refreshLocal' for nil:NilClass org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `refreshLocal' for nil:NilClass #<Class:0x100a21ac2>.define_command(/Applications/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/87/1/.cp/bundles/coffeescript.ruble/commands/compile_and_display_js.rb:23) org.jruby.RubyProc.call(org/jruby/RubyProc.java:274) org.jruby.RubyProc.call(org/jruby/RubyProc.java:233) It appears the JS file is successfully updated, but I'm not sure what I need to do to avoid this error. Do I need to install Ruby? Thanks.3
274APSTUD-4309add logTrace() option to IdeLogA number of items are written out to the log under the INFO level. However, if you have the slider set to ALL, that can provide an _astronomical_ amount of data, particularly from the scripting plugin, assuming you have not selected particular components to debug. * Add logTrace() to IdeLog * Add isTraceEnabled() * Move isInfoEnabled() calls to use isTraceEnabled() and logTrace(), where appropriate * Only show "trace" items if level is set to [ALL] _and_ you have chosen to debug the specific component in question. This is in contrast to the current behavior for INFO where it will show all components if no specific one is selected.8
275APSTUD-4311Create JavaDocs as part of the build processDuring the Aptana Studio and Titanium Studio build process, we need to create a set of JavaDocs to make it easier for end users to navigate and understand. This ideally is placed into a "javadocs" folder in this area http://hudson-master.hdqt.appcelerator.com/hudson/job/studio3-feature-master/lastSuccessfulBuild/artifact/build-artifacts/, so that they can be uploaded as part of the nightly sync. There should be some set of ANT tasks we can use to generate the docs. We also need to replace the default stylesheet with the JBoss one: https://community.jboss.org/wiki/JBossorgStylesheetsForJavadocAndJXRXrefReports?_sscc=t13
276APSTUD-4313Aptana Studio Crashes on "Open With"When opening a file using the "Open With" context menu the program will crash with an unexpected error. Tested on 2 machines. This only occurs when the program is not already running. Steps to re-produce. 1. Close All Aptana Windows 2. Right click and php file in OSX 3. Select "Open With"... Aptana 4. Program will show loading dialogue and close unexpectedly Hope this helps.20
277APSTUD-4318Drag and drop of text no longer worksI noticed several days ago that the "drag and drop of text" feature was no longer working in the nightly build. I was in the middle of a deadline project, so I wasn't able to do further troubleshooting. However, today I downloaded 3.0.8 release and created a new workspace, made sure the "enable drag and drop of text" option was checked, and verified it was working. I then updated to build: 3.0.9.201202021720 (beta) and verified it was still working. I next updated to the nightly build: 3.1.0.201202021828, and the problem is now present.13
278APSTUD-4322JS content assist does not show dotted properties in new-statementsIn the following snippet: {code} var com = { aptana: { myFunction: function() {} } }; var invoke = com.aptana.myFunction(); var instantiate = new com.| {code} as I type "com.aptana.myFunction()" in the "var invoke" declaration, I get content assist off of "com." which includes "aptana". However, in the "var instantiate" declaration, if my cursor is at the '|' character, I see a list of globals. Note that I tested with content after that line and the problem persisted, so this is not an EOF issue.3
279APSTUD-4325Investigate why the JS index file size varies drastically depending on language-level indexing orderSee parent ticket for how to replicate this issue. This ticket is just to figure out the root cause and file related tickets13
280APSTUD-4326Fix antialiasing on X used in validation pageIt appears that the icon used in the attached image needs to have some transparency adjustments made. Preferences > Aptana Studio > Validation3
281APSTUD-4327Blank line in validation preferencesSee the attached image. I have a blank line as one of my selectable options. It may be what used to be "parse errors". This appears for multiple languages, not just JavaScript.5
282APSTUD-4328Problems view does not update until project is rebuilt# Paste the following into a new HTML file, inside a project: {code} <html> <head> <script type="text/javascript"> function alertMsg{alert("Popup");} </script> </head> <body> <form> <input type="button" value="Show alert box" onclick="alertMsg()" /> </form> </body> </html> {code} # Note there is an error in the gutter around alertMsg{}, but not in the problems view # Save the file. Note, no change in the problems view # Right-click on the project, and choose "Build" # Note the problems view now contains a corresponding error13
283APSTUD-4329The "Choose Connection" dialog won't "Remember my decision"The goal: - A single directory in my project ("src"), containing files for the root of the site I am developing. - A local project copy which automatically syncs with the development server via an SFTP connection ("dev"). - An additional FTP connection ("prod") to the production server, to which I can deploy (or "Synchronize") "src" at will. The Setup: - Created two connections, linking "src" to "dev" ("Local <\-> Dev") and "src" to "prod" ("Local <\-> Prod"). - Configured "Deployment Settings" (from right-click on "src") with settings for "dev". - Configured "Properties->File Transfer->Connection" (from right-click on "src") to refer to "dev", with "Use the connection as default" checked. The problem: 1. Change a file and save it. 1r. The "Choose Connection" dialog appears, with "Local <-> Prod: prod" automatically selected and "Remember my decision" unchecked. 2. Select "Local <-> Dev: dev". 3. Check "Remember my decision". 4. Click "OK" 4r. The Synchronization takes place 6. Repeat Step 1, on the same file. 6r. Steps 1r, 2, 3, and 4 should now be skipped but they are not. Additional details: - Primary Project Nature: Web - Additional Project Nature: PHP - Project contains a single directory called "src", containing files for the root of the website I am developing. - Connection Manager lists two connections (in addition to the "Default"): -- "Local <-> Dev": Associates the local "src" directory with an SFTP connection to a sub-directory on the development server -- "Local <-> Prod": Associates the local "src" directory with an FTP connection to the root directory on the production server, which is on a completely different domain than the development server. - The "dev" server is hosted with Hostmonster on a shared server. - I do not know how or with whom the "prod" server is hosted. SFTP does not seem to be available on this server, hence my use of FTP instead.5
284APSTUD-4330"Choose Connection" dialog refers users to a non-existent property page "Properties:Synchronization"1. Right-click a directory in the project and expand the "Deploy" menu item. 2. Select "Deploy -> Run Web Deployment Wizard...". 3. Configure an FTP connection, selecting "Automatically sync my changes with the remote site". 4. Click OK and allow the sync to take place. 5. Change a file in the project and save it. The "Choose Connection" dialog displays. The caption underneath "Remember my decision" reads as follows: "Access this setting in the Properties:Synchronization property page." As far as I can tell, this property now resides in the "Properties:File Transfer" property page.1
285APSTUD-4335Broken Linux links on preview.appcelerator.comOn the website http://preview.appcelerator.com/ the x64-linux links are broken for Aptana Studio.5
286APSTUD-4342Outline appears brokenHi, sience a few days the outline view is broken. This happens in .php, .js files as far as i know. I added you a screenshot. Thanks and greetings Leo13
287APSTUD-4344Migrate empty and self-closing tag information from HTMLParseState into HTML metadataWe have a couple classes that handle sniffing document type and then returning info on HTML tags being empty/self-closing/end tags being forbidden. They're in HTMLParseState and HTMLDocumentTypes. We use this in our CA and parsing and would like to use it in Validation as well. Ideally this sort of information seems like it should be in the XMl metadata for HTML, rather than in a supporting utility class or two. * Modify HTML metadata schema (top-level by document type) * New model elements * Query the system * Replace calls from HTMLParseState20
288APSTUD-4350Copying and pasting file shows warning about turning off auto-buildI have Aptana Studio 3.0.8 installed as a plugin into Eclipse 3.7.1. In Package Explorer, I selected a JS file, copied, then pasted. Normally, a dialog will appear asking how to name the new file. However, I got a dialog indicating that my CA experience may suffer by turning off auto-build. After dismissing the dialog, I got the regular file naming dialog. It looks like Eclipse may turn off building during the creation of new files via the mechanism.8
289APSTUD-4354PHP Namespaces - Allow non-local functions to be called staticallyI've noticed that many of the newer PHP 5.3 based frameworks contain an autoloader of some sort that allows for developers to use classes in files that have no reference to said class. When trying to call a class where there is no namespace though, I am told there is no proposal. It would greatly help me as a developer to have the functions of a class proposed for me when I don't have a namespace defined. I've attached a couple of images to help explain what I'm asking for. In the first image, where there are no proposals, because of how the way the framework is written, it would be great if the function list was there even though a namespace wasn't called. Here are just two frameworks that allow for this: https://github.com/laravel/laravel/blob/master/application/controllers/home.php https://github.com/fuel/fuel/blob/1.1/master/fuel/app/classes/controller/welcome.php13
290APSTUD-4356PHP: Unable to format string with interleaved commentsAttached PHP file has the code that fails plus the error code Code: {code} <?php $sql = // 'SELECT r.id ' . // 'FROM record AS r '. // 'WHERE status = \'closed\' '. // 'AND flags & 1 = 0'; echo $sql; ?> {code}13
291APSTUD-4357Support usage of CommonJS Modules "require" method in JavaScript code completionGiven the following: {code:title=MyModule.js} exports.sayHello = function(name) { Ti.API.info('Hello '+name+'!'); }; exports.version = 1.4; {code} {code} var myModule = require('MyModule'); myModule.sayHello('Kevin'); //CA prompts "sayHello" and ContextInfo for "name" parameter {code} We present content assist against the functions and properties defined in the module file * This would require changing the index to show what individual files require and filtering that in content assist.13
292APSTUD-4359JS in HTML attribute shows incorrect content assistWith the following snippet: {code} <body onload="Math.|"></body> {code} Place the cursor at the '|' character and force content assist to appear. You will be presented with "no proposals" but this should show all proposals for the Math object.5
293APSTUD-4360Fix Aptana Studio download count on aptana.comAs has been pointed out to me, the download count on Aptana.com has not updated in some time. Supposedly, every time a download happens, a text file is written to, and then the front page reads this value. This process previously worked, so something has gone wrong and needs fixing.8
294APSTUD-4361Improve text hover for JavaScriptFrom https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel:title=Properties/Variables} &#64;name: &#64;type - path/to/declaration/locationa, path/to/declaration/locationb, ... //description Supported Platforms browser/&#64;platform: browser/&#64;version, ... Remarks remarks Example example\[1\] Specification specification/&#64;name: specification/&#64;version {panel} {panel:title=Functions} &#64;name(parameter/&#64;name: parameter/&#64;type, ...): &#64;type - path/to/declaration/locationa, path/to/declaration/locationb, ... //description Supported Platforms: browser/&#64;platform: browser/&#64;version Remarks remarks Example example\[1\] Specification specification/&#64;name: specification/&#64;version {panel}8
295APSTUD-4362Improve text hover for CSS property namesFrom https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel:title=Hover} @name (@display-name) - path/to/declaration/locationa, path/to/declaration/locationb, ... //description Supported Platforms browser/@platform: browser/@version, ... Remarks remarks Example example[1] Specification specification/@name: specification/@version {panel}8
296APSTUD-4363Improve text hover for HTML elementsFrom https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel:title=Hover} @name (@display-name) - path/to/declaration/locationa, path/to/declaration/locationb, ... //description Remarks remarks Example example[1] Specification specification/@name: specification/@version {panel}8
297APSTUD-4367Add option to format object properties on separate linesWhen trying to format this bit of JavaScript code, the formatter used to crash: {noformat} function table(options) { var settings = options , dataView = new DataView() , h_request = null , req = null // ; } {noformat} Now, it just collapses all of the properties onto a single line. * Add UI and functionality into the formatter, allowing the properties to be formatted each to one line.20
298APSTUD-4368Have IdeLog log using the product version, not the version of the pluginIn general, when logging a file, we most care about the product version (i.e. 3.0.8) as opposed to the version of the plugin (i.e. build 3.0.0.1326742432) which may not change as frequently as the product version. Update IdeLog to use the RCP/Plugin product version instead.2
299APSTUD-4373Install and configure Derby on a Hudson agentNULL13
300APSTUD-4374Enable performance testing build job on HudsonWe need to re-enable the job and ensure it actually still works.8
301APSTUD-4377HTML does not appear in the Commands menuThe Commands menu does not contain HTML. Steps to Replicate : 1) Open Titanium Studio 2) Open the Commands menu Actual Results : The Commands menu does not include HTML. Expected Results : The Commands menu should include HTML. 3
302APSTUD-4378Add name of errant file to error message for MetadataReader.loadXML()When writing out the following to the log file, we should at least write out the name of the documentation file, and if possible _something_ about where in the file the error occurs (line #, character count, anything) {code} (Build 3.0.3.qualifier) [ERROR] An error occurred while parsing the documentation XML file. The value of attribute "name" associated with an element type "null" must not contain the '<' character. java.lang.Exception: An error occurred while parsing the documentation XML file. The value of attribute "name" associated with an element type "null" must not contain the '<' character. com.aptana.editor.common.contentassist.MetadataReader.loadXML(MetadataReader.java:216) com.aptana.editor.js.contentassist.index.SDocMLFileIndexingParticipant.index(SDocMLFileIndexingParticipant.java:52) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:83) com.aptana.core.build.UnifiedBuilder.buildFile(UnifiedBuilder.java:322) com.aptana.core.build.UnifiedBuilder.buildFiles(UnifiedBuilder.java:306) com.aptana.core.build.UnifiedBuilder.fullBuild(UnifiedBuilder.java:265) com.aptana.core.build.UnifiedBuilder.build(UnifiedBuilder.java:122) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) org.eclipse.core.internal.resources.Workspace.build(Workspace.java:422) com.aptana.editor.js.JSMetadataLoader$1.run(JSMetadataLoader.java:139) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
303APSTUD-4379NPE in JSPropertyCollector.visit()Seen in my log file, referencing the attached file: {code} !ENTRY com.aptana.editor.erb 4 0 2012-02-13 21:25:39.507 !MESSAGE (Build 3.0.3.1329178832) [ERROR] An error occurred while indexing _download_info.html.erb !STACK 0 java.lang.NullPointerException com.aptana.editor.js.inferencing.JSPropertyCollector.visit(JSPropertyCollector.java:245) com.aptana.editor.js.inferencing.JSSymbolCollector.addPropertyValue(JSSymbolCollector.java:134) com.aptana.editor.js.inferencing.JSSymbolCollector.visit(JSSymbolCollector.java:262) com.aptana.editor.js.parsing.ast.JSDeclarationNode.accept(JSDeclarationNode.java:37) com.aptana.editor.js.parsing.ast.JSTreeWalker.visitChildren(JSTreeWalker.java:291) com.aptana.editor.js.parsing.ast.JSTreeWalker.visit(JSTreeWalker.java:267) com.aptana.editor.js.parsing.ast.JSVarNode.accept(JSVarNode.java:53) com.aptana.editor.js.inferencing.JSSymbolCollector.accept(JSSymbolCollector.java:100) com.aptana.editor.js.inferencing.JSSymbolCollector.visit(JSSymbolCollector.java:395) com.aptana.editor.js.parsing.ast.JSParseRootNode.accept(JSParseRootNode.java:56) com.aptana.editor.js.parsing.ast.JSParseRootNode.getGlobals(JSParseRootNode.java:70) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.getGlobals(JSFileIndexingParticipant.java:77) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.processParseResults(JSFileIndexingParticipant.java:175) com.aptana.editor.html.contentassist.index.HTMLFileIndexingParticipant.processHTMLSpecialNode(HTMLFileIndexingParticipant.java:140) com.aptana.editor.html.contentassist.index.HTMLFileIndexingParticipant.processNode(HTMLFileIndexingParticipant.java:166) com.aptana.editor.html.contentassist.index.HTMLFileIndexingParticipant.walkAST(HTMLFileIndexingParticipant.java:198) com.aptana.editor.erb.html.RHTMLFileIndexingParticipant.indexSource(RHTMLFileIndexingParticipant.java:68) com.aptana.editor.erb.html.RHTMLFileIndexingParticipant.index(RHTMLFileIndexingParticipant.java:39) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:83) com.aptana.core.build.UnifiedBuilder.buildFile(UnifiedBuilder.java:322) com.aptana.core.build.UnifiedBuilder.buildFiles(UnifiedBuilder.java:306) com.aptana.core.build.UnifiedBuilder.fullBuild(UnifiedBuilder.java:265) com.aptana.core.build.UnifiedBuilder.build(UnifiedBuilder.java:122) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) org.eclipse.core.internal.resources.Workspace.build(Workspace.java:422) com.aptana.editor.js.JSMetadataLoader$1.run(JSMetadataLoader.java:139) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}13
304APSTUD-4380Correct improperly shut down jobsIf I shut down Aptana or Titanium Studio while it's still trying to load, it warns me that jobs have not been properly shut down. We should correct the instances listed below: {code} (Build null) [ERROR] An error occurred while executing a script-loaded event listener java.lang.IllegalStateException: Job manager has been shut down. org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1104) org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:427) org.eclipse.core.runtime.jobs.Job.schedule(Job.java:462) com.aptana.scripting.keybindings.internal.KeybindingsManager.reloadbindings(KeybindingsManager.java:374) com.aptana.scripting.keybindings.internal.KeybindingsManager.scriptLoaded(KeybindingsManager.java:894) com.aptana.scripting.model.BundleManager.fireScriptLoadedEvent(BundleManager.java:722) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2052) com.aptana.scripting.model.BundleManager$BundleLoadJob.run(BundleManager.java:152) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) (Build null) [ERROR] An error occurred while executing a script-loaded event listener java.lang.IllegalStateException: Job manager has been shut down. !ENTRY org.eclipse.core.jobs 2 2 2012-02-14 06:52:56.879 !MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: com.aptana.scripting.model.BundleManager$BundleLoadJob !ENTRY org.eclipse.core.jobs 2 2 2012-02-14 06:52:56.881 !MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: com.aptana.scripting.model.BundleManager$BundleLoadJob org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1104) org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:427) org.eclipse.core.runtime.jobs.Job.schedule(Job.java:462) com.aptana.scripting.keybindings.internal.KeybindingsManager.reloadbindings(KeybindingsManager.java:374) com.aptana.scripting.keybindings.internal.KeybindingsManager.scriptLoaded(KeybindingsManager.java:894) com.aptana.scripting.model.BundleManager.fireScriptLoadedEvent(BundleManager.java:722) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2052) com.aptana.scripting.model.BundleManager$BundleLoadJob.run(BundleManager.java:152) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: com.aptana.scripting.model.BundleManager$BundleLoadJob Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: com.aptana.scripting.model.BundleManager$BundleLoadJob (Build null) [ERROR] An error occurred while executing a script-loaded event listener java.lang.IllegalStateException: Job manager has been shut down. org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1104) org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:427) org.eclipse.core.runtime.jobs.Job.schedule(Job.java:462) com.aptana.scripting.keybindings.internal.KeybindingsManager.reloadbindings(KeybindingsManager.java:374) com.aptana.scripting.keybindings.internal.KeybindingsManager.scriptLoaded(KeybindingsManager.java:894) com.aptana.scripting.model.BundleManager.fireScriptLoadedEvent(BundleManager.java:722) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2052) com.aptana.scripting.model.BundleManager$BundleLoadJob.run(BundleManager.java:152) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code} There may be others as well.8
305APSTUD-4381Editing YAML bundle returns scripting console errorEditing the YAML bundle returns a scripting console error. Steps to Replicate : 1) Open Titanium Studio 2) Select Commands > YAML > Edit This Bundle Actual Results : The scripting console returns the error : [2012-02-14 10:46:35] An error occurred while executing C:\Documents and Settings\QAtesting\Aptana Rubles\yaml.ruble\bundle.rb: (Errno::ENOENT) No such file or directory - C:\Documents and Settings\QAtesting\Aptana Rubles\yaml.ruble/config/locales org.jruby.exceptions.RaiseException: (Errno::ENOENT) No such file or directory - C:\Documents and Settings\QAtesting\Aptana Rubles\yaml.ruble/config/locales org.jruby.RubyDir.chdir(org/jruby/RubyDir.java:317) Ruble::I18n.load_translations(C:/Program Files/Appcelerator/Titanium Studio/configuration/org.eclipse.osgi/bundles/459/1/.cp/framework/ruble/i18n.rb:95) Ruble::I18n.init_translations(C:/Program Files/Appcelerator/Titanium Studio/configuration/org.eclipse.osgi/bundles/459/1/.cp/framework/ruble/i18n.rb:88) Ruble::I18n.translate(C:/Program Files/Appcelerator/Titanium Studio/configuration/org.eclipse.osgi/bundles/459/1/.cp/framework/ruble/i18n.rb:53) Object.t(C:/Program Files/Appcelerator/Titanium Studio/configuration/org.eclipse.osgi/bundles/459/1/.cp/framework/ruble/i18n.rb:131) #<Class:0x1019a2097>.define_bundle(C:\Documents and Settings\QAtesting\Aptana Rubles\yaml.ruble\bundle.rb:6) org.jruby.RubyProc.call(org/jruby/RubyProc.java:274) org.jruby.RubyProc.call(org/jruby/RubyProc.java:229) #<Class:0x101e185b9>.define_bundle(C:/Program Files/Appcelerator/Titanium Studio/configuration/org.eclipse.osgi/bundles/459/1/.cp/framework/ruble/bundle.rb:222) Object.bundle(C:/Program Files/Appcelerator/Titanium Studio/configuration/org.eclipse.osgi/bundles/459/1/.cp/framework/ruble/bundle.rb:247) #<Class:0x1019a2097>.(root)(C:\Documents and Settings\QAtesting\Aptana Rubles\yaml.ruble\bundle.rb:3) Expected Results : Studio should clone the bundle. 8
306APSTUD-4384Pre-select last used connection in connection menu drop down for repeated synchronizationI would prefer remembering of the last connection used for synchronization. I have some projects deployed to more than one place (connection). When I make some little changes in the project (for example in template), it usualy relates to one specific connection. As soon as I check changes, I synchronize files with that connection. Now, whats wrong. In serie of more changes in a row, everytime I want to synchronize, I need to switch to the right connection prior to the actual synchronization, because Aptana not remember last used connection. There is checkbox "Remember my decision" but it's unusable for my situation. I still need dialogue for selection of connection.5
307APSTUD-4385Hide errant "Cannot Recover From Syntax Error" exceptions in log fileWhile following the steps for APSTUD-2564, I saw this in my log file when I started typing "body": {code} (Build 3.0.3.qualifier) [ERROR] Cannot recover from the syntax error beaver.Parser$Exception: Cannot recover from the syntax error beaver.Parser.recoverFromError(Parser.java:590) beaver.Parser.parse(Parser.java:487) beaver.Parser.parse(Parser.java:428) com.aptana.editor.css.parsing.CSSParser.parse(CSSParser.java:131) com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:286) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:244) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:231) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:213) com.aptana.editor.common.AbstractThemeableEditor.getAST(AbstractThemeableEditor.java:1084) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy$2.run(CommonReconcilingStrategy.java:253) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3935) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3612) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) (Build 3.0.3.qualifier) [ERROR] Cannot recover from the syntax error org.eclipse.core.runtime.CoreException: Cannot recover from the syntax error com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:126) com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:83) com.aptana.editor.css.contentassist.index.CSSFileIndexingParticipant.index(CSSFileIndexingParticipant.java:42) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:83) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.runParticipants(CommonReconcilingStrategy.java:306) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:238) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:208) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.fullReconcile(CommonReconcilingStrategy.java:396) com.aptana.editor.common.text.reconciler.CompositeReconcilingStrategy.fullReconcile(CompositeReconcilingStrategy.java:125) com.aptana.editor.common.text.reconciler.CommonReconciler.process(CommonReconciler.java:162) org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) Caused by: beaver.Parser$Exception: Cannot recover from the syntax error beaver.Parser.recoverFromError(Parser.java:590) beaver.Parser.parse(Parser.java:487) beaver.Parser.parse(Parser.java:428) com.aptana.editor.css.parsing.CSSParser.parse(CSSParser.java:131) com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:286) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:244) com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:117) ... 10 more ckgroundThread.run(AbstractReconciler.java:206) {code} Those error messages aren't necessary.5
308APSTUD-4386Investigate FTP directory failing issue to see if it's still a problem* Look at change log between our current FTP version and the latest released * See if any issues seem like they are relevant * If so, update and get users to try new version * If not, contact EDT with our stack trace to see if they have any suggestions8
309APSTUD-7471CSS Insert Color command does not add valid color code if select-all is in effect firstIf the end user selects everything in the editor and invokes Insert Color then Studio returns a color code value without the hash. Steps to Replicate : 1) Open Titanium Studio 2) Open a CSS file 3) Select all 4) Select Commands > CSS > Insert Color, select a color and click OK Actual Results : The editor inserts a color code with no hash. Expected Results : The editor is supposed to insert a color code with a hash. 8
310APSTUD-4388Consider improving performance of AST merging in CompositeParserWhile looking over an issue related to offsets when parsing nested languages in RHTML/HTML, I noticed that we have code that effectively merges nodes into the top-level AST. I believe the current implementation can be improved considerably, performance-wise. Currently, all nodes are flattened into a list and that list is traversed for each node being inserted into the tree. Instead, we should take advantage of the existing functionality in IParseNode#getNodeAtOffset.13
311APSTUD-4389Add support for "this" in JS constructorsUsing the following code snippet: {code} function Constructor() { this.name = "John"; this.id = 10; this.| } function TopLevel() { this.type = "Unknown"; this.count = 10; this.| function Nested() { this.callback = function() {}; this.data = {}; this.| } } {code} We should provide content assist for the properties off of "this" in each of the locations with the '|' character. The last "this" in Constructor should show "name" and "id". The last "this" in TopLevel should show "type" and "count". The last "this" in Nested should show "callback" and "data"20
312APSTUD-4390Show all properties off of "this" in all methods in JSUsing the following code: {code} function myClass() { this.name = ""; this.id = 10; this.| } myClass.prototype.getName = function() { return this.| } myClass.prototype.doSomething = function() { this.company = ""; this.zipcode = ""; this.| } {code} In each location tagged by "this.|" we should show the properties "name", "id", "company", and "zipcode"13
313APSTUD-4392Add 'Tab' and focus support for the Content-Assist additional info popupNow that the Studio has the F2 support for displaying documentation via hovers, we need to add similar functionality to the Content-Assist additional info popup.20
314APSTUD-4393Add HTML documentation hovers for elements and attributesSee https://wiki.appcelerator.org/display/tools/In-Studio+Documentation {panel} @name (@display-name) - path/to/declaration/location //description Remarks remarks Example example[1] Specification specification/@name: specification/@version {panel}13
315APSTUD-4395Odd appearance of "User agents may have been deleted when setting element to use all user agents" error message# Create a new web project # Paste in the following content into a new HTML file and save it: \\ {code} <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>local webview</title> <link rel="stylesheet" type="text/css" href="../test.css" /> <script type="text/javascript" src="../jquery-1.3.2.js"></script> <meta name="format-detection" content="telephone=no"/> </head> <body id="mybody" style="height:500px;background-color:#999;background-image:url(../images/bg.png)"> Hello from local webview. You should see an indicator in the middle and my text should be blue. We are also including JQuery <div id="foo" style="margin-top:20px;font-weight:bold">hello </div> <div>323-223-2222</div> <img alt="an image" src="" id="image"/> <a href="http://www.google.com">google</a> <script> Titanium.API.info('before image'); Titanium.API.info("JSON injection: "+JSON.stringify(['foo','bar'])); var i = new Image(); Titanium.API.info('image ' + i); window.my_global_variable = 10; Ti.App.addEventListener('image', function(d) { var path = d.path; Ti.API.info('RECEIVED PATH ' + path) document.getElementById('image').src = path; }) Ti.App.addEventListener('show_indicator',function(e) { Ti.API.info("removeEventListener: a="+e.a); Ti.App.removeEventListener('show_indicator',this); setTimeout(function() { Ti.App.fireEvent('hide_indicator'); },1000); }); Ti.App.fireEvent('show_indicator',{'a':1}); Ti.API.debug('log statement here'); $('#foo').html("Click Me to Hide the Toolbar"); // you can use either onclick or ontouchstart - if you use onclick // and have a click on the webview instance you'll need to hold down the // webview area for a 1/2 second to trigger it ... ontouchstart is immediate // both work but ontouchstart makes it appear immediate and don't make you think the // test isn't working document.getElementById("foo").ontouchstart = function() { Ti.App.fireEvent('webview_hidetoolbar',{foo:'bar'}); Ti.API.info("clicked on local_webview link"); }; </script> </body> </html> {code} # You might also clean the project The log file will contain a number of: {code}!ENTRY com.aptana.editor.js 2 0 2012-02-16 09:50:30.134 !MESSAGE (Build 3.0.3.qualifier) [WARNING] User agents may have been deleted when setting element to use all user agents: method back():void !ENTRY com.aptana.editor.js 2 0 2012-02-16 09:50:30.134 !MESSAGE (Build 3.0.3.qualifier) [WARNING] User agents may have been deleted when setting element to use all user agents: method prompt(String,String):String,Number !ENTRY com.aptana.editor.js 2 0 2012-02-16 09:50:30.135 !MESSAGE (Build 3.0.3.qualifier) [WARNING] User agents may have been deleted when setting element to use all user agents: method moveTo(Object,Object):void !ENTRY com.aptana.editor.js 2 0 2012-02-16 09:50:30.135 !MESSAGE (Build 3.0.3.qualifier) [WARNING] User agents may have been deleted when setting element to use all user agents: method resizeBy(Number,Number):void {code}5
316APSTUD-4396Cut-off "syntax error" on hoverWhile hovering over a syntax error in a PHP file, I get a small, cut-off version of the text (where you can only partially see "syntax"). I had to press F2 to take a screen shot, but even then, you can see the dialog looks wrong.8
317APSTUD-4397Unable to see cursor over dark background color in editorI'm using Ubuntu 11.10 with Aptana Studio 3.0.8. When using dark background color in code editor, the ibeam cursor didn't change to lighten color so it was completely invisible.13
318APSTUD-4399Generate baseline data for performance testing to assert againstWe need to run the performance tests repeatedly with a specific version of studio to generate a "baseline" that we can use to assert against for the continuous runs. 5 runs with no failures should be good enough.5
319APSTUD-4400Get all performance tests passingWe need to be sure that all the performance tests pass as stable just doing the typical JUnit assertions before we can generate a good baseline and then also assert performance data.13
320APSTUD-4401Set performance test job to assert against baselineOnce we have a baseline set of data, make sure the performance job is then configured to assert against that data for performance regressions. This involves setting a property on the job of: extraPerfArgs=-Declipse.perf.assertAgainst=build=<baseline> where <baseline> is the studio version string we used to generate the baseline.3
321APSTUD-4402Add action for "Open Declaration" in the Ruby hoversSame as APSTUD-4190, add this hover action to Ruby.8
322APSTUD-4403Building workspace is blocking FTP downloadIf you transfer a lot of files from an ftp server into a project, aptana is trying to rebuild the index after every new file. If you downloading a cms with 10 000 files, aptana's build jobs are blocking the file download and the cpu load is rising.8
323APSTUD-4406Character Encoding options broken, falsely reporting UTF-8A well known issue with deploying Titanium projects to android that has existed for a long, long time is problems with the Android emulator requiring files to be UTF-8. So naturally if you ran across the issue when using TiStudio, you would right click the files, go to properties and check your 'Text file encoding' was set to UTF08. It automatically chooses the option titled 'Inherited from container (UTF-8)'. So according to Aptana/TiStudio, the file is set to UTF-8. Yet the android emulator is still throwing a wobbly over a non UTF-8 file. I then opened the exact file in Coda (by panic.com) to find that every single one of the Titanium Studio files was in face set to "Western (Mac OS Roman)" and not UTF-8. I edited the files to UTF-8 via Coda and hey presto, the android project works. The same action in Aptana/TiStudio does not work, it leaves the files in their old encoding. The bug here is quite simply that the Aptana text file encoding options for files dont change the file encoding at all. This has been present since at very least when Appcelerator bought out Titanium Studio. More info on this bug can be found here: http://developer.appcelerator.com/question/88591/unicodedecodeerror-utf8-codec-cant-decode-byte-0x80-in-position#comment-11484213
324APSTUD-4408Lazily load "additional info" for Javascript content assistWe pre-populate the additional info popup strings for every Javascript CA proposal. If we implement ICompletionProposalExtension5 we can return the additional proposal info for PropertyElementProposal on-demand, which saves us generating all of the strings in advance and instead populating it when the particular proposal is selected.8
325APSTUD-4409Indexing blocks new file creationGiven a project with a very large html file (attached), I wanted to create new file (php). Doing so blocked Studio for 15 minutes while indexing was in progress and no way to cancel it unless I killed the application. The indexed file is not even on the same project. Indexing should not interrupt file creation.13
326APSTUD-4410Prompt user before deleting a file with UndoSteps as listed here: File > New File will create a new file. This will not respond to "Undo" (see Eclipse bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=219901 where they fixed that) To replicate: Eclipse 3.7.1 (JDT): Navigator, but not Package Explorer or Project Explorer Titanium Studio (dev): App Explorer and Project Explorer Titanium Studio 1.0.9: App Explorer and Project Explorer # Open a file in the Editor. # Select a file in a view listed above, in a non-Java project. # Copy and paste the file in the view. The default name is fine. # Go to the editor. Type a key and leave it unsaved. # Re-focus the Project Explorer view. Press "Undo". The file copy will go away. Now... # Open up the .project file # add <nature>org.eclipse.jdt.core.javanature</nature> to the project natures # Close and reopen the project as above # Retry the above steps. It won't work. However, you can get the contents back again: # Go into "Project Explorer" # Right-click on the root of the project in question and select "Restore From Local History..." # Select the particular resource, and if you like, select a version. Finish out of the dialog. I thought this was an Eclipse bug, but since I can't replicate it in Project Explorer with a Java project, but I _can_ replicate it with an Aptana-natured Project (or actually a project with no natures too), I'm a bit confused. As evidenced by this thread (http://developer.appcelerator.com/question/121789/titanium-studio-deleting-my-files#answer-231188), users run into this issue all the time. We should prompt the user before confirmation if we are in a state where there is a file deletion happening as a result of an undo event. Perhaps it's possible to listen for resource change events of this type, and ask the user in advance of the event happening. Note that they originally fixed the issue by removing file creation events from the undo history.13
327APSTUD-4411Unable to create project in location with pre-existing filesIf you create a new project (in my case PHP) and you point to a location which already contains files, Aptana won't allow you to create the project. You see a warning, but there is no way to skip this warning and create the project regardless.3
328APSTUD-4412NPE in Index.computeIndexLocation()In my log file: {code} !ENTRY org.eclipse.core.jobs 4 2 2012-02-22 09:42:08.537 !MESSAGE An internal error occurred during: "Indexing file:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/". !STACK 0 java.lang.NullPointerException com.aptana.index.core.Index.computeIndexLocation(Index.java:153) com.aptana.index.core.Index.<init>(Index.java:314) com.aptana.index.core.IndexManager.getIndex(IndexManager.java:98) com.aptana.index.core.IndexRequestJob.getIndex(IndexRequestJob.java:222) com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:54) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
329APSTUD-4413NPE during "Error loading the built-in PHP API"In my log file: {code} (Build null) [ERROR] Error loading the built-in PHP API for java.lang.NullPointerException com.aptana.editor.php.internal.indexer.language.PHPBuiltins.getBuiltinsURLs(PHPBuiltins.java:734) com.aptana.editor.php.internal.indexer.language.PHPBuiltins.initPHP53Builtins(PHPBuiltins.java:620) com.aptana.editor.php.internal.indexer.language.PHPBuiltins.initBuiltins(PHPBuiltins.java:495) com.aptana.editor.php.internal.indexer.language.PHPBuiltins.clean(PHPBuiltins.java:800) com.aptana.editor.php.internal.indexer.language.PHPBuiltins$1.run(PHPBuiltins.java:343) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
330APSTUD-4414Ruby Formatter Not Indenting If StatementsSeems related to fixed issue APSTUD-3620. Proper formatting of if statements is inconsistent in that it sometimes works and doesn't. Below is an example of multiple 'if' statements failing to correctly format and one that does. 1) Open Aptana Studio 3, build: 3.0.8.201201201658 2) Open a ruby file and add the following code: {code:none} class Ball def update(time_delta) # Determine new x and y position of ball. @x += @x_velocity * time_delta @y += @y_velocity * time_delta # Keep the ball on the window. if @x < @image.width / 2 @x = @image.width / 2 @x_velocity = -@x_velocity end if @x > (@window.width - (@image.width / 2)) @x = (@window.width - (@image.width / 2)) @x_velocity = -@x_velocity end if @y < @image.height / 2 @y = @image.height / 2 @y_velocity = -@y_velocity end if @y > @window.height + (@image.height / 2) reset end end end {code} 3) Format (CTRL+Space or Source > Format) Actual Results (notice only the last 'if' statement is correctly indented): {code:none} class Ball def update(time_delta) # Determine new x and y position of ball. @x += @x_velocity * time_delta @y += @y_velocity * time_delta # Keep the ball on the window. if @x < @image.width / 2 @x = @image.width / 2 @x_velocity = -@x_velocity end if @x > (@window.width - (@image.width / 2)) @x = (@window.width - (@image.width / 2)) @x_velocity = -@x_velocity end if @y < @image.height / 2 @y = @image.height / 2 @y_velocity = -@y_velocity end if @y > @window.height + (@image.height / 2) reset end end end {code} Expected Results: {code:none} class Ball def update(time_delta) # Determine new x and y position of ball. @x += @x_velocity * time_delta @y += @y_velocity * time_delta # Keep the ball on the window. if @x < @image.width / 2 @x = @image.width / 2 @x_velocity = -@x_velocity end if @x > (@window.width - (@image.width / 2)) @x = (@window.width - (@image.width / 2)) @x_velocity = -@x_velocity end if @y < @image.height / 2 @y = @image.height / 2 @y_velocity = -@y_velocity end if @y > @window.height + (@image.height / 2) reset end end end {code} 8
331APSTUD-4418Errant error message in log file "Cannot recover from the syntax error"# Open a new JS file # Start typing "function" # Note the following in the log file: {code} !SUBENTRY 1 com.aptana.index.core 4 0 2012-02-23 09:34:54.197 !MESSAGE Cannot recover from the syntax error !STACK 0 beaver.Parser$Exception: Cannot recover from the syntax error beaver.Parser.recoverFromError(Parser.java:590) com.aptana.editor.js.parsing.JSParser.recoverFromError(JSParser.java:604) beaver.Parser.parse(Parser.java:487) beaver.Parser.parse(Parser.java:428) com.aptana.editor.js.parsing.JSParser.parse(JSParser.java:428) com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:286) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:244) com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:117) com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:83) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.index(JSFileIndexingParticipant.java:104) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:83) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.runParticipants(CommonReconcilingStrategy.java:306) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:238) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:208) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.fullReconcile(CommonReconcilingStrategy.java:396) com.aptana.editor.common.text.reconciler.CommonReconciler.process(CommonReconciler.java:162) org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) (Build 3.0.3.qualifier) [ERROR] Cannot recover from the syntax error org.eclipse.core.runtime.CoreException: Cannot recover from the syntax error com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:126) com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:83) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.index(JSFileIndexingParticipant.java:104) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:83) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.runParticipants(CommonReconcilingStrategy.java:306) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:238) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:208) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.fullReconcile(CommonReconcilingStrategy.java:396) com.aptana.editor.common.text.reconciler.CommonReconciler.process(CommonReconciler.java:162) org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) Caused by: beaver.Parser$Exception: Cannot recover from the syntax error beaver.Parser.recoverFromError(Parser.java:590) com.aptana.editor.js.parsing.JSParser.recoverFromError(JSParser.java:604) beaver.Parser.parse(Parser.java:487) beaver.Parser.parse(Parser.java:428) com.aptana.editor.js.parsing.JSParser.parse(JSParser.java:428) com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:286) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:244) com.aptana.index.core.build.BuildContext.getAST(BuildContext.java:117) ... 9 more {code}5
332APSTUD-4419ScriptDoc auto-comment inserts a blank line for variable assignments# Open a new JS file # Type "var x = new Array();" # Place the cursor before "var" and type "/**" + Enter # You will get an extra line: {code} /** * */ var x = new Array(); {code}2
333APSTUD-4420There are an extra two blank lines in the text hover documentationHover over a variety of items. Many will have an extra blank line: {code} Create and return an instance of . Supported Platforms mobileweb, iphone, ipad, android {code} It appears that might be for an empty "Examples" section8
334APSTUD-4421Formatting object properties adds spaces before and after the colonTypically, I would expect the following formatting in JavaScript: {code} var label1 = Titanium.UI.createLabel ({ color: '#999', text: 'I am Window 1', }); {code} However, our default formatter settings result in: {code} var label1 = Titanium.UI.createLabel ({ color : '#999', text : 'I am Window 1', }); {code} Which seems "spaced out"5
335APSTUD-4422Auto complete height and width of img when writing HTMLWhen writing a img tag in HTML it aids the user with the src attribute but when you go on to add height and width attribute it would be nice to auto complete the value with the actual file dimensions.13
336APSTUD-4425Consider using binary XML format for HTML/CSS/JS metadata filesCurrently, we store metadata for HTML, CSS, and JS in XML formats. Some of these files are quite large. This ticket is to recommend that we use binary XML format, specifically EXI for the content of the metadata files. Related to this, we're using JSON in the Index files. This may be a good option there as well13
337APSTUD-4427Collapsed code expands automatically when I start typingWhen I collapse some functions (e.i. clicking the - symbol next to line numbers) in php editor and start typing in that file in a different place all collapsed code is expanded automatically after typing several symbols.5
338APSTUD-4428equivalent of "console.dir();" for the studio consoleI'd love to be able to log and later explore objects like can be done with firefox, safari or chrome with the command "console.dir();". This is a major part of my debugging method so I'd love to see it supported in studio. To be clear, it allows the user to visually click through the levels of an object. Very handy. I took a screen shot of what I'm talking about. If you guys think it's a worthy addition maybe it would go in its own tab down with console, terminal, problems, search window or something? Whether or not you implement this feature you rock, I don't know how you guys do it!7
339APSTUD-4431Use Eclipse's Diff/Compare editors to show diffs in git commit dialogWe use a browser widget to show diffs the same sort of way as reviewboard does - with just added/removed lines in green/red. We have existing diff/compare infrastructure available to us in Eclipse, we should harness that to show the side by side diff syntax colored.13
340APSTUD-4432Fix JS metadata for DOM specsIn dynamic help we can provide related links/topics for JS elements. Ideally we'd link to DOM/JS docs we have for things like DOM 0, or DOM 5, or JS Core (or specific javascript versions), but the specs defined in the metadata don't seem to be consistently applied. As a result we can't consistently link to the related docs. The relevant code is in JSSourceEditor, line 73. One workaround we could do is to get the real underlying metadata filename returned in the list of Documents (so we can test for dom_0.xml, etc)13
341APSTUD-4435Deployment synchronisation table is not centered on openingIf you open the deployment synchronisation window the filename column is to large, so you cant read the other column directly. You have to resize the column every time you open the sync window. 5
342APSTUD-4436Setting built in web server IP address doesn't seem to persist # Set the built-in web server to use the computer's IP address # Applying and restarting Aptana. # Reboot your mac and open Aptana again # Go run a html file as a JavaScript web application. The web server is bound to 127.0.0.1 instead of the computer's IP address. Going in to change it to the computer's IP address shows that it is still set. Changing it back to 127.0.0.1, clicking apply and then changing it back to the computer's IP address, applying and restarting Aptana resolves the issue temporarily.3
343APSTUD-4438Add "Preview Editor" to right-click context menu's "Show In" submenu for HTML filesI was editing an HTML file inside the Java perspective and saw no easy way to preview the file. Ideally we'd have an entry in the right-click context menu such as "Show In > Preview Editor". There is an "Open With > Web Browser", but I'm not sure if that would be quite the same. I had to switch to the Web perspective so I could click the preview icon in the global toolbar at the top of the perspective.5
344APSTUD-4439using the linux nofity daemon for information popupsHi friends, it would be very helpful if you could trigger the linux notification system every time an important event is fired. Example: Sync complete, Upload complete, Download complete, ... . Triggering the notify daemon is realy simple, just run the shell command notify-send followed by the text you want to display. {code}notify-send "File Upload complete"{code} If you add the option -i you can specify the path to an icon, witch is displayed left next to the text. In my case i use the icon.xpm from the original Aptana folder. {code}notify-send -i /home/leo/Tools/Aptana\ Studio\ 3/icon.xpm "File Upload complete"{code} If you want, you also can add the -t param and a display duration in ms. But the normal default is great. {code}notify-send -i /home/leo/Tools/Aptana\ Studio\ 3/icon.xpm -t 20000 "File Upload complete"{code} Thats it, simple, pretty and very usefull because you never miss an status event. I addet you some screenshots where you can see what happens if you do this. Thanks and greetings Leo2
345APSTUD-4440Add a "Delete Remote" command/menu to git supportWe have the ability to add remotes and push the current branch to a particular remote. We should be able to also remove remotes (similar to deleting branches).5
346APSTUD-4441Need to force a clean rebuild if the build participant enablement or filters changeIf a user edits the filters on a participant or modifies enablement, we need to force a clean rebuild of projects for the changes to take effect. Like JDT, we should warn the user of needing to rebuild all projects (and offer to cancel). Also, we don't need to do this if only changing reconcile options.8
347APSTUD-4442App Explorer's content disappears when adding JDT nature to .project fileThe steps to reproduce: 1. Create a Web project with a few files in it; 2. From App Explorer, open the .project file; 3. Edit the .project file to add the JDT nature and save. Expected result: the content in App Explorer won't be affected. Actual result: the project content will disappear from the view. I tried F5 refresh and unchecked all the filters in Customize View..., and they were no help. However, if I use the dropdown to switch to a different project and then back, the content will appear again. Also if I simply removed the JDT nature from the .project file, the content will re-appear as well without having to switch project. 8
348APSTUD-4443Manage the PHP indexing through a PHP build participantWe need to have the PHP indexing process triggered and controlled via the build-participant. Also, we need to allow caching of the PHPParseState to improve performance (at the moment, caching is disabled to allow re-parsing and error flushing). This will require some modification in the indexer itself, and changes in the way we deliver the PHP errors to the markers (hold the errors in the parse-state, modify/remove the BuildProblemReporter, etc.)20
349APSTUD-4444JS inference infers the type of logical expressions to be Boolean incorrectlyA logical expression in JavaScript using the operators || or && returns one of its operands, not a boolean evaluation of them as might be expected in other languages. Aptana 3.1.0.201202291203 incorrectly infers the type of a variable assigned to such an expression as Boolean without considering the type of its operands. An example is the very common JS idiom for giving an argument a default value or type in the case that it is omitted when the function is called: {code:JavaScript} function foo (optionalString) { optionalString = optionalString || ""; // if it's been left out, make sure it's a string. /* do other stuff... */ } {code} Inference could deduce the type of a logical expression to be the union of the types of its operands, but in my experience, the actual desired type is always the type of the right operand if it isn't Boolean.8
350APSTUD-4445Content assist, inference, and documentation languages lack expressions to explicitly relate types to identifiersThe languages defined for adding documentation that affects content assist (ScriptDoc, SDocML, JSCA JSON) have type expressions whose grammer is inadequate in cases where the type is not specifically known beforehand, but can reliably be deduced from parameters. Consider the ES5 Object.create, which creates a new object with a prototype specified by its parameter: {code:JavaScript} foo = new KnowTypeWithDocumentedProperties; bar = Object.create(foo); {code} In that case, bar will have the same properties as foo. However, it is not possible to infer them from the (hypothetical future) documentation for the Object.create method because the documentation languages lack a way to express that the return type will be the same as one of the parameters. Perhaps more common: {code:JavaScript} BaseClass.prototype.chainableMethod = function () { /* do something... */ return this; } DerivedClass.prototype = new BaseClass; exampleInstance = new DerivedClass; exampleReturn = exampleInstance.chainableMethod(); {code} It is currently impossible to express that chainableMethod returns the same type as the object that owns it. At best, inference will be able to guess that exampleReturn is an instance of BaseClass. If many types derive from BaseClass, this is a problem, since content assist will be unable to infer any of the subclass properties after the call to chainableMethod, and a chainable method's purpose is to conveniently call additional methods on the return value. The following would be really maddening to document: {code:JavaScript} dojo.declare("my.ClassName", Superclass, { constructor: function () { /* ... */ }, someProperty: /* ... */ }); instance = new my.ClassName; {code} All of the properties that should be inferred for instance are in the parameters to dojo.declare; some day, when the ScriptDoc tags for assigning class membership work for inference, it will be possible for dojo users to document the class, but it will still be difficult/impossible for the authors of dojo.declare to provide type information. Rather than add special cases in the Aptana source to deal with each of these specifically (and add more as they appear), it is preferable to extend the documentation languages' type expressions to include operators or new tags capable of explicitly stating a type's relationship to an identifier. Because inference from simple assignments is now working quite well, the simplest solution might be a 'typeof' operator in ScriptDoc/SDocML/JSCA type expressions whose operand is a JavaScript expression. The same inference code that is now working would evaluate the provided expression in the context of the invocation where it's found to determine the return type.13
351APSTUD-4448Analyze duplicate Strings and Fill Ratios of Studio using Memory analyzerI have a feeling there's plenty of low hanging fruit in terms of our memory usage. I read this article and it seems to be pretty easy to get a quick grasp of where we're wasting RAM: http://www.ibm.com/developerworks/java/library/j-codetoheap/index.html8
352APSTUD-4450Remove the MozillaJS validatorThe MozillaJS validator simply runs the source through the Rhino parser. It appears to be giving us no extra benefit that we don't already get (or can't get) from our own parser. If that is the case, we can remove some deadweight code and possible performance issue.8
353APSTUD-4451Align validator and marker names for HTML/JS/CSSIn order to make it easier to determine which validators and generating the content in the Problems View, we need to make a pass over the validator names and marker names to make sure they are consistent with one another. Here is a list of validators names, with their current default settings for building and reconciling: {code} JSLint JavaScript Validator build-off reconcile-off Mozilla JavaScript Validator build-off reconcile-on JavaScript Parser Validator build-on reconcile-on Tidy HTML Validator build-off reconcile-on HTML Parser Validator build-on reconcile-on W3C Stylesheet Validator build-off reconcile-on CSS Parser Validator build-on reconcile-on {code} And here are the associated marker names: {code} JS Problem, %marker.jslint.name, %marker.mozilla.name CSS Problem, CSS W3C Problem HTML Problem, HTML Tidy Problem {code} I may be looking in the wrong place, but I didn't see values in the plugin.properties file for the JSLint and Mozilla markers. * "Parse Validator" should become "Syntax Validator" * We need to reverse "Tidy HTML ..." to "HTML Tidy ..." for consistency * Markers should use the validator name replacing "Validator" with "Problem"5
354APSTUD-4452Use initialCapacity when generating collections in CollectionsUtilCurrent CollectionsUtil#newMap/newSet/newList create their collections using the default constructors. However, this could cause more memory to be used than is needed to contain the items that will be added to them. Additionally, if the collection has to be resized, that introduces a slightly performance decrease. To avoid both of these issues, we should use the constructors that allow us to define an initial capacity, especially since we already know how many items are going to be added to the collections.3
355APSTUD-4453Inline calls to addToList/Map/Set in newList/Map/SetCurrently, for code-reuse reasons, we call CollectionsUtil#addToList/Map/Set in CollectionsUtil#newList/Map/Set. However, to make these a bit faster and to avoid unnecessary List creation/GC, we should essentially inline the addTo* methods in the new* methods. These are simple loops and we have unit tests to cover both methods already3
356APSTUD-4455Use CollectionsUtil#newList/Map/Set where possible and/or set initialCapacityTo improve memory usage in our collections, we should see if we can switch over to using CollectionsUtil#new* methods directly since those methods will optimize the collection size to match its content. If the we're unable to switch over to those utility methods, we should try to set the initial capacity, when possible. We should search for default constructors on at least the following: * ArrayList * HashMap * HashSet13
357APSTUD-4456Implement ParseNode#trimToSize similar to ArrayList#trimToSizeIn our continuing effort to improve performance, we're currently making a pass to reduce the footprint of collections, as possible. Our ParseNode implementation mirrors ArrayList in how it grows its underlying children array. We should add a trimToSize method so those arrays can be paired down to the minimum size. Probably a ParseRootNode should implement a method to visit all descendants (using a queue) and invoke their trimToSize methods. It seems like our parsers should do that once parsing is complete.8
358APSTUD-4457Consider using "compress references" and "compressed ordinary object pointers" to reduce Studio's memory footprintAccording to this article: http://www.ibm.com/developerworks/java/library/j-codetoheap/index.html pointers in 64-bit java implementations typically increase Java heap usage by 70%. We should consider using the -Xcompressedrefs and -XX:+UseCompressedOops flags, measuring application footprint before and after that setting. If memory does drop considerably, then we should consider using these settings in the Studio products8
359APSTUD-4462Code review the PHP Core changes for the debugger supportReview the changes to the core PHP plugins. Those changes are required for the PHP debugger support (extra plugins).8
360APSTUD-4463Code review the PHP Debugger GPL pluginCode review the GPL plugin for the PHP debugger support.8
361APSTUD-4464Code review the PHP Debugger EPL pluginReview the EPL plugin for the PHP debugger support.13
362APSTUD-4468Selection colors don't match theme in non-Aptana compare editors when we're applying theme to non-Aptana editorsIf the user chooses to apply our theme to all editors, then there's currently a bug where the selection color doesn't get applied to the compare editors properly. We programmatically enforce selection colors through InvasiveThemeHijacker, around line 1260 (hijackEditor). We aren't properly grabbing the two editor panes' text widgets and setting it on those.8
363APSTUD-4469Use StringPools to avoid duplicated strings - notable Bundle infrastructure and PHP builtinsWe duplicate "path", "scope" and "customProperties" key values in bundle model elements. Using a StringPool to reuse equal strings would help bring down our memory usage quite a bit there. Long-term we may want to handle freeing the strings from the pool in a smarter way when the referring elements themselves are removed (say a bundle gets removed) - but the effort required given that unusual/unlikely use case may not warrant it. Secondly, we should use StringPool for a lot of the duplicated string values in PHP builtins. We're already hanging onto the entire thing in memory, so having them live in a StringPool that lives as long as the plugin won't actually make it any worse. We'd have to remove the pool if we ever refactored to persist the index to disk like we do in core. 8
364APSTUD-4472Quick outline filter requires use of wildcards when searchingThe quick outline requires wildcards to search for items, whereas the outline filter does not. Please see the screenshot for an example.13
365APSTUD-4473Problem with git push command (ssh_askpass)I get this in console when trying to push commit to github: {quote} ssh_askpass: exec(/usr/share/aptana/plugins/com.aptana.git.core_3.0.0.1327087459/os/linux/ssh-askpass.tcl): Permission denied Permission denied (publickey). fatal: The remote end hung up unexpectedly {quote} Here is my .git/config {quote} [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = git@github.com:ciembor/some_project.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master {quote} Pushing works from terminal. Here is an output: {quote} [ciembor@peace some_project]$ git push Enter passphrase for key '/home/ciembor/.ssh/id_rsa': Counting objects: 11, done. Delta compression using up to 2 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 1.14 KiB, done. Total 6 (delta 4), reused 0 (delta 0) To git@github.com:ciembor/some_project.git 635a296..9770c46 master -> master {quote} 8
366APSTUD-4475Avoid unresponsiveness from auto-expanding outline levels on start-up (css files)*Problem:* When re-opening Aptana with both Outline window and a long css file open in Editor window, Aptana automatically expands all css nodes in the Outline window. This makes the program unresponsive for several seconds, until it has finished expanding all nodes. *Suggestion:* Preference option for default outline level by file type. Reopening Outline at same level as it was when closing. *Aptana version:* Aptana Studio 3, build: 3.0.8.201201201658 *Operating system:* Windows 7 64bit, Mac OS X 10.63
367APSTUD-4476Typing in a PHP file collapses the outline when errors occurAny syntax errors while typing takes the class out of the outline, and when the syntax issue is resolved it collapses the node down to the root. Steps to reproduce: 1. Open a php file. 2. Enter the code: {code} class Bird { public function fly(){ echo "I'm flying."; } public function dive(){ echo "watch out below!" } } {code} 3. Enter "public function peck" inside of class Bird but do not finish the line. Actual results: Class Bird is pulled from the outline as it now has syntax errors. If those errors are removed Bird is added to the outline but is collapsed. Expected results: Class Bird should stay in the outline while functions are being written.8
368APSTUD-4479Cannot format jQuerySee comments for code {code} !ENTRY com.aptana.formatter.epl 4 0 2012-03-11 18:02:21.807 !MESSAGE (Build 3.0.0.1326742432) [ERROR] com.aptana.formatter.epl/debug Error while formatting the code in your editor. Please submit a bug report through Studio's support and include the relevant code which triggered this error. !ENTRY com.aptana.formatter.epl 4 0 2012-03-11 18:02:29.884 !MESSAGE (Build 3.0.0.1326742432) [ERROR] com.aptana.formatter.epl/debug Error while formatting the code in your editor. Please submit a bug report through Studio's support and include the relevant code which triggered this error. {code}8
369APSTUD-4485Generated mobileweb index.html shows numerous CSS syntax errors about unexpected ":"After generating a default mobileweb project, I packaged to a new project. The resulting index.html file has 24 errors in it, 4 of those are syntax error about pseudo-element syntax: {code} input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } {code} 3
370APSTUD-4486Generated mobileweb index.html shows numerous JS syntax errors about unexpected "E3"After generating a default mobileweb project, I packaged to a new project. The resulting index.html file has 24 errors in it, 10 of those are syntax errors about floating point number syntax: {code} 1E6 {code} https://developer.mozilla.org/en/JavaScript/Guide/Values,_Variables,_and_Literals#Floating-point_literals5
371APSTUD-4487Generated mobileweb index.html shows numerous CSS syntax errors about unexpected "*"Our CSS validation is complaining about the * in the following snippet: {code} button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; *overflow: visible; } {code}5
372APSTUD-4488Show "Servers" view in Window > Show View menu for Web perspectiveWe brought back the Servers view, but it's not in the main views menu. You have to select Window > Show View > Other...3
373APSTUD-4489Allow setting CA platform/user-agents per-projectWe have the ability to globally set up what user-agents/platforms to show in CA by project nature. This seems unlikely to be too useful beyond turning on titanium platforms for titanium natures and browsers for any others. I'm assuming users would want to tailor the set of platforms/agents on a per-project basis, with the ability to set defaults for all projects (or maybe natures as-is).8
374APSTUD-4491Change in validator preference should not be applied until Apply or OK is clicked1. Open Preferences > Validation page and select CSS; 2. Uncheck "Build" for CSS Syntax Validator; 3. Click Cancel; 4. Repeat Step 1. Expected result: validator on build for CSS Syntax Validator should remain checked. Actual result: the validator on build is unchecked. 13
375APSTUD-4492Hitting Apply in validator preference page when there is a change and confirming to build should trigger the buildFirst do the following steps: 1. Open Preferences > Validation page and select CSS; 2. Uncheck CSS Syntax Validator for build (or check it if it's already unchecked); 3. Hit Apply; 4. The Build Settings Changed dialog appears, and select Yes. At that point, I have given my input and thus expect the following behaviors: 1. When Cancel is hit to quit the preferences page, the build would still be triggered. Actual result: no build is triggered. 2. When OK is hit, I would not be prompted again for the settings-changed dialog since no validation settings have been changed between Apply and OK. Actual result: the settings-changed dialog appears again, and then regardless if I select Yes or No, the build process will be triggered. 8
376APSTUD-4493Error while formatting PHP contentI started seeing error logs for formatting simple PHP scripts. Seems like the errors are originated in the HTML formatter, and with the parse-result passed into it. For example, this simple script trigger an error: {code} <?php echo 1; {code} To see the actual IParseResult, place a breakpoint at HTMLFormatterNodeBuilder -- build() method. I've noticed that in the case of this example, we get two child nodes that overlap with the start&end offsets. {code} ParseRootNode | |-- HTMLTextNode (0, 13), contentType='com.aptana.contenttype.html' |-- ParseNode (0, 14), contentType='com.aptana.contenttype.php' {code}8
377APSTUD-4496Many "Failed to acquire read lock to read config file" error messages in log fileMy log file contains a number of the following messages: {code} !ENTRY com.aptana.git.core 4 0 2012-03-13 21:43:46.911 !MESSAGE (Build 3.0.0.qualifier) [ERROR] com.aptana.git.core/debug Failed to acquire read lock to read config file. !ENTRY com.aptana.git.core 4 0 2012-03-13 21:43:46.912 !MESSAGE (Build 3.0.0.qualifier) [ERROR] com.aptana.git.core/debug Failed to acquire read lock to read config file. !ENTRY com.aptana.git.core 4 0 2012-03-13 21:43:46.912 !MESSAGE (Build 3.0.0.qualifier) [ERROR] com.aptana.git.core/debug Failed to acquire read lock to read config file. !ENTRY com.aptana.git.core 4 0 2012-03-13 21:43:46.913 !MESSAGE (Build 3.0.0.qualifier) [ERROR] com.aptana.git.core/debug Failed to acquire read lock to read config file. {code} Unless this is truly an error, we should lower the level to WARNING or INFO. For the relevant git error messages, it would also be nice to indicate which git repo is the culprit, in case that is relevant.2
378APSTUD-4498Use a separate lock for git config file so refreshes don't block reading configWe use a lock on the entire repo. We should have a separate lock for the config file, since most of the "writes" won't affect it.13
379APSTUD-4501BadLocationException in the log after hitting Enter in a ruby fileAfter creating an empty ruby file and hitting Enter in the editor, the following exception is generated in the log: {code} !ENTRY com.aptana.editor.ruby 4 0 2012-03-14 17:48:18.084 !MESSAGE (Build 3.0.3.1331216954) [ERROR] Unable to get text of line at offset: -1 !STACK 0 org.eclipse.jface.text.BadLocationException org.eclipse.jface.text.TreeLineTracker.fail(TreeLineTracker.java:1055) org.eclipse.jface.text.TreeLineTracker.lineByOffset(TreeLineTracker.java:267) org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1137) org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:161) org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:915) org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOfOffset(SynchronizableDocument.java:397) com.aptana.editor.ruby.RubyAutoIndentStrategy.autoIndent(RubyAutoIndentStrategy.java:65) com.aptana.editor.common.text.RubyRegexpAutoIndentStrategy.customizeDocumentCommand(RubyRegexpAutoIndentStrategy.java:50) org.eclipse.jface.text.TextViewer.customizeDocumentCommand(TextViewer.java:3745) org.eclipse.jface.text.TextViewer.handleVerifyEvent(TextViewer.java:3782) org.eclipse.jface.text.source.projection.ProjectionViewer.handleVerifyEvent(ProjectionViewer.java:1277) org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:435) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:265) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270) org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7148) org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7994) org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2456) org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5911) org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5941) org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5635) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1494) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1490) org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:463) org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:1051) org.eclipse.swt.widgets.Display.windowProc(Display.java:5563) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:68) org.eclipse.swt.widgets.Composite.keyDown(Composite.java:587) org.eclipse.swt.widgets.Display.windowProc(Display.java:5473) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220) org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2092) org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2252) org.eclipse.swt.widgets.Display.windowProc(Display.java:5535) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4989) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5138) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) {code} 3
380APSTUD-4505Studio hangs with new empty workspaceDuring testing of the release branch (currently 2.0/3.1), I was able to hang Studio. I was running from a dev environment where the workspace was being cleared on each run. As soon as Studio was up, I did the following: # Closed App Explorer # Closed Dashboard # Created a new web project # Added a new JS file to the web project At this point, studio was hanging. I noticed "Building Workspace" in the status bar was at 0% and remained there. Performing a stack dump, I see that three threads are in deadlock (see attached)13
381APSTUD-4506"Widget is disposed" exception occurs when closing App Explorer immediately after starting up a new empty workspaceI'm running from release (currently 2.0/3.1) from a dev environment. My run configuration is setup to clear my workspace when starting Studio. As soon as the workspace is visible, I close App Explorer. That results in a dialog saying that an internal error occurred during "Restoring State" (see attached). Here's a the log: {code} !SESSION 2012-03-15 15:04:23.175 ----------------------------------------------- eclipse.buildId=unknown java.version=1.6.0_29 java.vendor=Apple Inc. BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US Framework arguments: -product com.appcelerator.titanium.rcp.product Command-line arguments: -product com.appcelerator.titanium.rcp.product -data /Users/klindsey/Documents/Workspaces/delete-me.product -dev file:/Users/klindsey/Documents/Workspaces/Studio_3/.metadata/.plugins/org.eclipse.pde.core/Studio/dev.properties -os macosx -ws cocoa -arch x86_64 -consoleLog !ENTRY org.eclipse.core.net 1 0 2012-03-15 15:04:34.124 !MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences !ENTRY org.eclipse.ui 4 4 2012-03-15 15:04:37.055 !MESSAGE An internal error has occurred. !STACK 0 org.eclipse.swt.SWTException: Widget is disposed org.eclipse.swt.SWT.error(SWT.java:4282) org.eclipse.swt.SWT.error(SWT.java:4197) org.eclipse.swt.SWT.error(SWT.java:4168) org.eclipse.swt.widgets.Widget.error(Widget.java:774) org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:568) org.eclipse.swt.widgets.Tree.setRedraw(Tree.java:2902) com.aptana.explorer.internal.ui.FilteringProjectView.restoreState(FilteringProjectView.java:578) com.aptana.explorer.internal.ui.FilteringProjectView$7.runInUIThread(FilteringProjectView.java:552) org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code}5
382APSTUD-4507Convert UserAgentManager to use chained preference storesCurrently, we are not using the EclipseUtil.getDefault.getNode() mechanism for setting up defaults. Likewise, we need to use a chained preference store to handle user-level preferences. Once UserAgentManager has been converted to use preferences in this way, the ContentAssist preference page will need to be updated as well. We should move the preference key over to com.aptana.edtior.common where UserAgentManager lives. It currently lives in com.aptana.ui.epl for historical reasons. Note that we will need to migrate any existing values from the old key to the new key.8
383APSTUD-4508Rubles don't appear to load correctly when Aptana Studio is in a directory with foreign charactersWhen i type in css file ".about {" earlier i got next result: {code} .about { } {code} I use Aptana Studio 3, build: 3.0.9.201202141038, and after typing .class and left bracket, right bracket isn't complete and new line not created. Suggested fix: # Attempt to replicate # If it's an issue with our code, apply fix # If it's a jRuby issue, link ticket to upstream item and place this ticket on hold.13
384APSTUD-4512PHP code assist on colon providing wrong optionsThe behaviour on the code assist for colons seems to have changed or is broken: {code} <?php switch(true) { case 'foo': } {code} None of the suggested options are relevant to a case statement (see attached screenshot). Also, it picks the first option as soon as you hit enter (see 2nd screenshot), which is what you usually do for a case statement to provide the code block on the next line. I can't imagine anyone would want this as the default behaviour which is why I think it may be a bug. 8
385APSTUD-4513Aptana startscreen fails with error "libjpeg.so.62: cannot open shared object file"If you start Aptana under Ubuntu 12.04 or Debian Sid, you get the folowing message: {code} An internal error has occurred. No more handlesNative code library failed to load. (java.lang.UnsatisfiedLinkError: /home/leo/Tools/Aptana Studio 3/plugins/com.aptana.swt.webkitbrowser.linux.x86_64_1.0.0.1329178697/os/linux/x86_64/libcefjni.so: libjpeg.so.62: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden) {code} Greetings Leo PS: The last part of the error message means: "Could not open the shared object file: File or directory not found."13
386APSTUD-4515The top banner in Mac installer should be updated to say 3.1Currently it still shows 3.0. We should either update it to 3.1 or remove it to just say "aptana studio".3
387APSTUD-4517Permissions not retained in Studio standalone expanded plugins (like terminal)In my Terminal view, I see {code} This Terminal Emulator is not functional because no 'bash' shell could be found. Please correct the problem and restart the IDE. {code} In the logs I see: {code} !ENTRY com.aptana.terminal 1 0 2012-03-19 11:07:41.303 !MESSAGE Starting terminal process failed. !STACK 0 java.io.IOException: Cannot run program "/Applications/Titanium Studio/plugins/com.aptana.terminal_3.0.0.1329404579/os/macosx/redtty" (in directory "/Users/cwilliams/Documents/Titanium Studio Workspace/blah"): error=13, Permission denied java.lang.ProcessBuilder.start(ProcessBuilder.java:460) com.aptana.terminal.internal.ProcessLauncher.launch(ProcessLauncher.java:41) com.aptana.terminal.connector.LocalTerminalConnector.startProcess(LocalTerminalConnector.java:219) com.aptana.terminal.connector.LocalTerminalConnector.access$0(LocalTerminalConnector.java:207) com.aptana.terminal.connector.LocalTerminalConnector$1.run(LocalTerminalConnector.java:101) Caused by: java.io.IOException: error=13, Permission denied java.lang.UNIXProcess.forkAndExec(Native Method) java.lang.UNIXProcess.<init>(UNIXProcess.java:53) java.lang.ProcessImpl.start(ProcessImpl.java:91) java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 4 more {code}13
388APSTUD-4519The selection background is still being applied when "Apply to all non-Studio editors" is uncheckedIt feels that when the option is unchecked, our theme should no longer affect the non-Aptana editor in any way, but currently the selection background is still applied. 8
389APSTUD-4520Trailing commas in array literals break JS formatterIn the JS editor, trailing commas are not considered a syntax error, but they do break the formatter: Example: bq. var x = ['a',]; (Build 3.0.0.1326742432) [ERROR] com.aptana.formatter.epl/debug Error while formatting the code in your editor. Please submit a bug report through Studio's support and include the relevant code which triggered this error. An exception stack trace is not available. 8
390APSTUD-4525Hitting tab in the editor does not insert a tab.In some cases (was revealed when having an older workspace), hitting tab in an editor does not insert a tab. Looking at the preferences, the editor's setting for the tab-space (width) was zero.5
391APSTUD-4535Index View does not show all types for JS* Create a new empty Web Project * Create a new empty JS file in that project * Paste the following code into the JS file {code} var x = {}; x.y = {}; x.y.z = function () {} {code} * Do not save the file * Open the Index View * Click on your project in the Project Explorer * Select the JS node and expand it * Expand the Project Types node You should see entries for "Window", "x", and "x.y" * Now save the JS file * Click on your project in the Project Explorer * Select the JS node and expand it * Expand the Project Types node You should see entries for "Window" only. "x", and "x.y" disappeared8
392APSTUD-4536Ruble loading throwing errors related to loading translation strings{code} (Build 3.0.0.qualifier) [ERROR] An error occurred while executing a script-loaded event listener org.eclipse.core.runtime.AssertionFailedException: assertion failed: Bundle not serialized correctly to file /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/cache.en_US.yml org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:203) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:139) com.aptana.scripting.model.BundleCacher$BundleCacheInvalidatingLoadCycleListener.updateCacheIfNecessary(BundleCacher.java:110) com.aptana.scripting.model.BundleCacher$BundleCacheInvalidatingLoadCycleListener.scriptLoaded(BundleCacher.java:97) com.aptana.scripting.model.BundleManager.fireScriptLoadedEvent(BundleManager.java:730) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2060) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2017) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:1993) com.aptana.scripting.model.BundleMonitor.fileCreatedHelper(BundleMonitor.java:206) com.aptana.scripting.model.BundleMonitor.fileCreated(BundleMonitor.java:172) net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX.batchEndEvent(JNotifyAdapterMacOSX.java:638) net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX$1.batchEnd(JNotifyAdapterMacOSX.java:143) net.contentobjects.jnotify.macosx.JNotify_macosx.callbackInBatch(JNotify_macosx.java:141) net.contentobjects.jnotify.macosx.JNotify_macosx.nativeNotifyLoop(Native Method) net.contentobjects.jnotify.macosx.JNotify_macosx.access$5(JNotify_macosx.java:81) net.contentobjects.jnotify.macosx.JNotify_macosx$1.run(JNotify_macosx.java:70) (Build 3.0.0.qualifier) [ERROR] An error occurred while executing a script-loaded event listener org.eclipse.core.runtime.AssertionFailedException: assertion failed: Bundle not serialized correctly to file /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/cache.en_US.yml org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:203) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:139) com.aptana.scripting.model.BundleCacher$BundleCacheInvalidatingLoadCycleListener.updateCacheIfNecessary(BundleCacher.java:110) com.aptana.scripting.model.BundleCacher$BundleCacheInvalidatingLoadCycleListener.scriptLoaded(BundleCacher.java:97) com.aptana.scripting.model.BundleManager.fireScriptLoadedEvent(BundleManager.java:730) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2060) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2017) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:1993) com.aptana.scripting.model.BundleMonitor.fileCreatedHelper(BundleMonitor.java:206) com.aptana.scripting.model.BundleMonitor.fileCreated(BundleMonitor.java:172) net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX.batchEndEvent(JNotifyAdapterMacOSX.java:638) net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX$1.batchEnd(JNotifyAdapterMacOSX.java:143) net.contentobjects.jnotify.macosx.JNotify_macosx.callbackInBatch(JNotify_macosx.java:141) net.contentobjects.jnotify.macosx.JNotify_macosx.nativeNotifyLoop(Native Method) net.contentobjects.jnotify.macosx.JNotify_macosx.access$5(JNotify_macosx.java:81) net.contentobjects.jnotify.macosx.JNotify_macosx$1.run(JNotify_macosx.java:70) Errno::ENOENT: No such file or directory - No such file or directory - /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/commands/appcelerator_titanium_mobile_developer_center.rb/config/locales chdir at org/jruby/RubyDir.java:317 load_translations at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:95 init_translations at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:88 translate at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:53 t at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:131 (root) at /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/commands/appcelerator_titanium_mobile_developer_center.rb:3 Errno::ENOENT: No such file or directory - No such file or directory - /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/samples/project_samples.rb/config/locales chdir at org/jruby/RubyDir.java:317 load_translations at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:95 init_translations at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:88 translate at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:53 t at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:131 (root) at /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/samples/project_samples.rb:3 (Build 3.0.0.qualifier) [ERROR] An error occurred while executing a script-loaded event listener org.eclipse.core.runtime.AssertionFailedException: assertion failed: Bundle not serialized correctly to file /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/cache.en_US.yml org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:203) com.aptana.scripting.model.BundleCacher.cache(BundleCacher.java:139) com.aptana.scripting.model.BundleCacher$BundleCacheInvalidatingLoadCycleListener.updateCacheIfNecessary(BundleCacher.java:110) com.aptana.scripting.model.BundleCacher$BundleCacheInvalidatingLoadCycleListener.scriptLoaded(BundleCacher.java:97) com.aptana.scripting.model.BundleManager.fireScriptLoadedEvent(BundleManager.java:730) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2060) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:2017) com.aptana.scripting.model.BundleManager.loadScript(BundleManager.java:1993) com.aptana.scripting.model.BundleMonitor.fileCreatedHelper(BundleMonitor.java:206) com.aptana.scripting.model.BundleMonitor.fileCreated(BundleMonitor.java:172) net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX.batchEndEvent(JNotifyAdapterMacOSX.java:638) net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX$1.batchEnd(JNotifyAdapterMacOSX.java:143) net.contentobjects.jnotify.macosx.JNotify_macosx.callbackInBatch(JNotify_macosx.java:141) net.contentobjects.jnotify.macosx.JNotify_macosx.nativeNotifyLoop(Native Method) net.contentobjects.jnotify.macosx.JNotify_macosx.access$5(JNotify_macosx.java:81) net.contentobjects.jnotify.macosx.JNotify_macosx$1.run(JNotify_macosx.java:70) Errno::ENOENT: No such file or directory - No such file or directory - /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/samples/project_samples.rb/config/locales chdir at org/jruby/RubyDir.java:317 load_translations at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:95 init_translations at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:88 translate at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:53 t at /Users/ingo/Documents/Projects/Aptana/red_core/plugins/com.aptana.scripting/framework/ruble/i18n.rb:131 (root) at /Users/ingo/Documents/Projects/Aptana/rubles/titanium_mobile.ruble/samples/project_samples.rb:3 {code}8
393APSTUD-4538User-defined functions not showing source file in content assist popup# Open a new file test.'s # Add function foo {} # Below, type fo + ctrl + space Note that the popup indicates the function is defined in "Window". in 1.0.9, it would say test.js 5
394APSTUD-4543Build participants get instantiated even if they're not used in build, resulting in unused plugins loading unnecessarilyI noticed that even if I had no PHP projects or files in my workspace, the PHP plugin is loading and generating builtins (which eats RAM). Diving deeper, it's because of the way I implemented the UnifiedBuilder and build participants. We instantiate every single one, then filter them down by enablement and then on a per-file basis we filter based on content types. If possible we should only instantiate the actual classes when they're used, and filter based on prefs/extension attributes.13
395APSTUD-4549NPE in IndexRequestJob.getIndexManager()Steps to replicate: # Launch Studio # Shut down Studio in the middle in it indexing the Ruby Core # Find a number of the following in the log file: {code} !ENTRY org.eclipse.core.jobs 4 2 2012-03-21 19:10:51.285 !MESSAGE An internal error occurred during: "Indexing Ruby Core". !STACK 0 java.lang.NullPointerException com.aptana.index.core.IndexRequestJob.getIndexManager(IndexRequestJob.java:138) com.aptana.index.core.IndexRequestJob.getIndex(IndexRequestJob.java:133) com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:54) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
396APSTUD-4556Have "Run Server" and "Debug Server" commands use the new Rails Server type in the Servers view to runIf you invoke the "Run Server" or "Debug Server" commands, they launch in the Terminal view. Now that we have a Rails Server type in the Servers view, we should generate one for the project (or re-use one if it existed) and start that.8
397APSTUD-4564Servers view shows unspecified port as "-1"# Crate a new server in the servers view # Specify a base URL, something like http://127.0.0.1 # Exit the dialog, saving Note that the port shows as -1. It should probably be listed as either "80" or left blank.2
398APSTUD-4565"Short Tag" snippet from XML autocompletes in HTML document, causing annoying content assist experience# Type: <div id="name"> # Aptana will add the closing </div> for you # Press enter (thinking your will get a new line), and a name tag is inserted. Actual result: {code} <div id="name"<name /></div> {code} Expected result: {code} <div id="name"> | </div> {code} You can work around the issue by one of two ways: # Hit "esc" before "enter" # Edit the XML bundle and remove the "short tag" definition The XML definition should not apply in HTML, as that snippet seems counter-productive. It does not apply in HTML in TextMate.8
399APSTUD-4567keyboard and mouse freeze on ubuntu 11.10While using Aptana, in ubuntu 11.10, the keyboard tends to lock up all response to mouse and keyboard commands. This is produced when you right click on the project explorer window in aptana. The only keyboard response it will take in is the super button. The unity bar will open from ubuntu and then it won't let you type anything or click on anything. Aptana and ubuntu install are pretty fresh only two weeks old.8
400APSTUD-4569HTML Tidy: Error: String index out of range: 0# Open a new HTML file # Type <div id=" then backspace # You should get in your log file" {code} (Build 3.0.3.qualifier) [ERROR] Error when running the source through tidy java.lang.StringIndexOutOfBoundsException: String index out of range: 0 java.lang.String.charAt(String.java:686) com.aptana.editor.html.validator.HTMLTidyValidator.getOffset(HTMLTidyValidator.java:240) com.aptana.editor.html.validator.HTMLTidyValidator.parseTidyOutput(HTMLTidyValidator.java:215) com.aptana.editor.html.validator.HTMLTidyValidator.runTidy(HTMLTidyValidator.java:154) com.aptana.editor.html.validator.HTMLTidyValidator.buildFile(HTMLTidyValidator.java:76) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.runParticipants(CommonReconcilingStrategy.java:309) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:240) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:210) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.fullReconcile(CommonReconcilingStrategy.java:409) com.aptana.editor.common.text.reconciler.CompositeReconcilingStrategy.fullReconcile(CompositeReconcilingStrategy.java:125) com.aptana.editor.common.text.reconciler.CommonReconciler.process(CommonReconciler.java:162) org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) {code}3
401APSTUD-4570Remove default HTML snippets from inside attribute values# Create a new test.html file # Type <div id="m" # Notice snippets for "movie," etc. Almost universally, snippets don't make sense in attribute values unless they are specifically crafted for that. Expected: Remove all default HTML snippets from inside attribute values.8
402APSTUD-4573PHP: Assertion Failed error due to a syntax errorPHP editor crashed due to a syntax error. I was not able to reopen the file until I manually removed the following (invalid) line: header("Location: URL_HOST.URL_LINK."/".$url); Here is the log returned upon crash: {code} org.eclipse.core.runtime.AssertionFailedException: assertion failed: org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) org.eclipse.core.runtime.Assert.isTrue(Assert.java:96) org.eclipse.jface.text.Position.<init>(Position.java:63) org.eclipse.jface.text.TypedPosition.<init>(TypedPosition.java:35) com.aptana.editor.common.text.rules.ThemeingDamagerRepairer.storeScope(ThemeingDamagerRepairer.java:285) com.aptana.editor.common.text.rules.ThemeingDamagerRepairer.getTokenTextAttribute(ThemeingDamagerRepairer.java:231) org.eclipse.jface.text.rules.DefaultDamagerRepairer.createPresentation(DefaultDamagerRepairer.java:179) com.aptana.editor.common.text.rules.ThemeingDamagerRepairer.createPresentation(ThemeingDamagerRepairer.java:80) com.aptana.editor.common.text.reconciler.CommonPresentationReconciler.createPresentation(CommonPresentationReconciler.java:151) com.aptana.editor.common.text.reconciler.CommonPresentationReconciler.createPresentation(CommonPresentationReconciler.java:109) org.eclipse.jface.text.presentation.PresentationReconciler.processDamage(PresentationReconciler.java:566) org.eclipse.jface.text.presentation.PresentationReconciler.access$3(PresentationReconciler.java:564) org.eclipse.jface.text.presentation.PresentationReconciler$InternalListener.inputDocumentChanged(PresentationReconciler.java:119) org.eclipse.jface.text.TextViewer.fireInputDocumentChanged(TextViewer.java:2888) org.eclipse.jface.text.TextViewer.setDocument(TextViewer.java:2937) org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:640) org.eclipse.jface.text.source.projection.ProjectionViewer.setDocument(ProjectionViewer.java:376) org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:588) org.eclipse.ui.texteditor.AbstractTextEditor.initializeSourceViewer(AbstractTextEditor.java:4030) org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3558) org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:54) org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:440) com.aptana.editor.common.internal.AbstractFoldingEditor.createPartControl(AbstractFoldingEditor.java:59) com.aptana.editor.common.AbstractThemeableEditor.createPartControl(AbstractThemeableEditor.java:297) com.aptana.editor.html.HTMLEditor.createPartControl(HTMLEditor.java:148) com.aptana.editor.php.internal.ui.editor.PHPSourceEditor.createPartControl(PHPSourceEditor.java:154) org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289) org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945) org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850) org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842) org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789) org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773) org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756) org.eclipse.ui.ide.IDE.openEditor(IDE.java:683) org.python.pydev.navigator.actions.PyOpenResourceAction.openFiles(PyOpenResourceAction.java:101) org.python.pydev.navigator.actions.PyOpenPythonFileAction.run(PyOpenPythonFileAction.java:85) org.eclipse.ui.actions.RetargetAction.run(RetargetAction.java:221) org.eclipse.ui.navigator.CommonNavigatorManager$3.open(CommonNavigatorManager.java:185) org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48) org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:866) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:864) org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1152) org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewer.java:462) org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1256) org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275) org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:269) org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:309) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) {code} 8
403APSTUD-4574Include tag/branch switching inside bundle installerToday it's impossible to use bundle in stable version of Studio3 because bundle was not keep in stable version inside github repository, for the next version that's may be useful to create a mechanism to keep the state of bundle in stable version. Or changing the way to get bundle. ([oldstable ? /] stable / next / nightly) Many user need to have a stable version of Studio, switching to nightly build was not a solution, run 'git bisect' to find the last good version too. Thank's.8
404APSTUD-4580PHP Outline broken by "<" (less than sign) characterThe outline in the PHP editor is broken (i.e. outline is empty) when a "<" (less than sign) character is present between the opening/closing PHP tags. I'm sure I haven't tested all possible scenarios, but the issue definitely presents itself when the "<" is directly followed by one or more a-z/A-Z characters h2.Examples The following code examples break the PHP outline {code:php} <?php function test_func() { $x = '<a' . 'b'; } ?> {code} {code:php} <?php // <a' function test_func() { $x = 'a' . 'b'; } ?> {code} h2.Workarounds Here are the following workarounds that restored the PHP outline Remove "<" character {code:php} <?php function test_func() { $x = 'a' . 'b'; } ?> {code} Remove closing PHP tag {code:php} <?php function test_func() { $x = '<a' . 'b'; } {code} Separating "<" character and a-z character {code:php} <?php function test_func() { $x = '<' . 'a' . 'b'; } ?> {code} Version tested: 3.2.0.20120326133513
405APSTUD-7872Build Participation: file refresh required to unload task tagsTask tag clipboard icons are not refreshed after Task preferences are changed. Removal of a Task tag from the preferences window does not apply to currently open editors, clicking the apply button has no result as well. Steps to reproduce: 1. Load a code file that is syntactically sound and has a TASK task on a single line comment. (for instance: jsexample.js) 2. Remove the TODO keyword. Expected Results: The TODO icon (clipboard) disappears from the line when the keyword is removed. Actual Results: The TODO icon is not removed until the file is reloaded. Suggested solution: * Force build all * Force reconcile on all our open editors8
406APSTUD-4585Add text hover for HTML attributesWe currently only support HTML element hovers. We should support hovering over attribute names for their docs.13
407APSTUD-4587Terminal (hidden) lines messed upBackground: ----------- I can run a ruby script by clicking the eclipse run button. Then I see the result in the console view. I also can run the ruby script using the terminal view by typing the command 'ruby myscript.rb paramOne paramTwo'. The second choice is better when I want to pass some parameters to my script. Bug: ---- Consider this code snipplet which produces many output lines: for i in 1..1000 puts i end Started in/from the terminal. Take a look on the screenshots. With best regards Pawel 13
408APSTUD-4590Add support for union, intersection, and grouping operators to scope selectorsTextMate scope syntax supports '&', '|', and parenthesis to create more explicit scope selectors. Our current implementation supports "descendant selector", ',', and '-' (negative lookahead). In order to support these new operators, we will need to create a true parser. We should be able to use existing ISelectorNode (the AST nodes); however, there is a subtle difference between a descendant selector and the & operator. A descendant selector can match any segment from the current position within the scope to the end of the scope. The & operator is used for intersection, so it will need its own node type. Additionally, we will need a node for parenthesis to make it easier to reverse an AST back to source. We use the source for some types of equality testing. One reference: * http://lists.macromates.com/textmate/2008-June/025964.html 13
409APSTUD-4591S3: Empty folder appears as file in Studio# Created a empty folder in a Amazon S3 bucket (using Cyberduck). # Browsing inside Studio, that folder appears as a file.8
410APSTUD-4592FTP: Changing file permissions in properties window does not change the permissions on the serverWhen browsing on a remote ftp server, changing file permissions in the file properties window does not execute a chmod command in the ftp console and does not make changes on the server. To test: # Connect to a local or remote FTP server (I used the built-in server on OS X) # Expand the site in the Remote view # Right-click on a file. Change the permissions to something different. # Save the properties. Note that the file permissions do not change on the server. Note that this _does_ work with the SFTP protocol.8
411APSTUD-4594PHP: java.util.ConcurrentModificationException in ContentAssistUtils.initializeBuiltinsIndex()Unfortunately not able to provide a repro case, but found this in my log file: {code} !ENTRY org.eclipse.jface.text 4 0 2012-03-31 07:23:04.120 !MESSAGE Unexpected runtime error while computing a text hover !STACK 0 java.util.ConcurrentModificationException java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1100) java.util.TreeMap$KeyIterator.next(TreeMap.java:1154) com.aptana.editor.php.internal.contentAssist.ContentAssistUtils.initializeBuiltinsIndex(ContentAssistUtils.java:286) com.aptana.editor.php.internal.contentAssist.ContentAssistUtils.selectModelElements(ContentAssistUtils.java:84) com.aptana.editor.php.internal.ui.hover.PHPTextHover.getPHPElementsAt(PHPTextHover.java:195) com.aptana.editor.php.internal.ui.hover.PHPTextHover.getHoverInfo2(PHPTextHover.java:155) com.aptana.editor.common.CommonSourceViewerConfiguration$TextHover.getHoverInfo2(CommonSourceViewerConfiguration.java:673) org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166) {code} 8
412APSTUD-4596Unable to correctly parse git versionFound in Eric's log file. I though this was a duplicate of another ticket, but I can't find the first version. {code} !ENTRY com.aptana.git.core 4 0 2012-03-30 11:52:03.083 !MESSAGE (Build 3.0.0.1332346356) [ERROR] com.aptana.git.core/debug Unable to correctly parse git version 1.7.7.5 (Apple Git-26) !STACK 0 java.lang.IllegalArgumentException: invalid qualifier: 5 (Apple Git-26) at org.osgi.framework.Version.validate(Version.java:195) at org.osgi.framework.Version.<init>(Version.java:161) at org.osgi.framework.Version.parseVersion(Version.java:225) at com.aptana.git.core.model.GitExecutable.version(GitExecutable.java:399) at com.aptana.git.core.model.GitExecutable.clone(GitExecutable.java:431) at com.aptana.git.ui.CloneJob.run(CloneJob.java:86) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
413APSTUD-4597FileNotFoundException in DiskIndex.readCategoryTable.readCategoryTable()Found in Eric's log file. Unfortunately, no repo case. {code} !ENTRY com.aptana.buildpath.core 4 0 2012-03-30 11:36:49.219 !MESSAGE (Build 3.1.0.1331646715) [ERROR] /Users/eric/Documents/afterDebuggerSpace/.metadata/.plugins/com.aptana.index.core/2949039762.index (No such file or directory) !STACK 0 java.io.FileNotFoundException: /Users/eric/Documents/afterDebuggerSpace/.metadata/.plugins/com.aptana.index.core/2949039762.index (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at com.aptana.internal.index.core.DiskIndex.readCategoryTable(DiskIndex.java:1058) at com.aptana.internal.index.core.DiskIndex.mergeCategory(DiskIndex.java:779) at com.aptana.internal.index.core.DiskIndex.mergeCategories(DiskIndex.java:753) at com.aptana.internal.index.core.DiskIndex.mergeWith(DiskIndex.java:912) at com.aptana.index.core.Index.save(Index.java:698) at com.aptana.index.core.Index.save(Index.java:671) at com.aptana.core.internal.build.IndexBuildParticipant.buildEnding(IndexBuildParticipant.java:61) at com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.runParticipants(CommonReconcilingStrategy.java:316) at com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:243) at com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:213) at com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.fullReconcile(CommonReconcilingStrategy.java:402) at com.aptana.editor.common.text.reconciler.CompositeReconcilingStrategy.fullReconcile(CompositeReconcilingStrategy.java:125) at com.aptana.editor.common.text.reconciler.CommonReconciler.process(CommonReconciler.java:162) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) {code}8
414APSTUD-4599Widget disposed too earlyThis appears in my log file when shutting down Studio. Note it appears for both the Samples view and the Console view: {code} !ENTRY org.eclipse.ui.workbench 4 0 2012-04-02 10:49:22.591 !MESSAGE Widget disposed too early for part com.aptana.samples.ui.SamplesView !STACK 0 java.lang.RuntimeException: Widget disposed too early for part com.aptana.samples.ui.SamplesView org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:171) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1461) org.eclipse.swt.widgets.Widget.release(Widget.java:1299) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:903) org.eclipse.swt.widgets.Widget.release(Widget.java:1302) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:903) org.eclipse.swt.widgets.Widget.release(Widget.java:1302) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:903) org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:313) org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:391) org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1372) org.eclipse.swt.widgets.Widget.release(Widget.java:1302) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Widget.dispose(Widget.java:662) org.eclipse.jface.window.Window.close(Window.java:335) org.eclipse.jface.window.ApplicationWindow.close(ApplicationWindow.java:307) org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1761) org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:730) org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:715) org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:860) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:858) org.eclipse.jface.window.WindowManager.close(WindowManager.java:109) org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1109) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1106) org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1035) org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1279) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.Workbench.close(Workbench.java:1277) org.eclipse.ui.internal.Workbench.close(Workbench.java:1249) org.eclipse.ui.internal.Workbench$65.handleEvent(Workbench.java:2564) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4118) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5142) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:4876) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5223) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:94) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3604) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) !ENTRY org.eclipse.ui.workbench 4 0 2012-04-02 10:49:22.593 !MESSAGE Widget disposed too early for part org.eclipse.ui.console.ConsoleView !STACK 0 java.lang.RuntimeException: Widget disposed too early for part org.eclipse.ui.console.ConsoleView org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:171) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1461) org.eclipse.swt.widgets.Widget.release(Widget.java:1299) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:903) org.eclipse.swt.widgets.Widget.release(Widget.java:1302) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:903) org.eclipse.swt.widgets.Widget.release(Widget.java:1302) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:903) org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:313) org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:391) org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1372) org.eclipse.swt.widgets.Widget.release(Widget.java:1302) org.eclipse.swt.widgets.Control.release(Control.java:2817) org.eclipse.swt.widgets.Widget.dispose(Widget.java:662) org.eclipse.jface.window.Window.close(Window.java:335) org.eclipse.jface.window.ApplicationWindow.close(ApplicationWindow.java:307) org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1761) org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:730) org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:715) org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:860) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:858) org.eclipse.jface.window.WindowManager.close(WindowManager.java:109) org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1109) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1106) org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1035) org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1279) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.Workbench.close(Workbench.java:1277) org.eclipse.ui.internal.Workbench.close(Workbench.java:1249) org.eclipse.ui.internal.Workbench$65.handleEvent(Workbench.java:2564) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4118) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5142) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:4876) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5223) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:94) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3604) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code}8
415APSTUD-4604Supported browsers are not shown in the css editorIn a CSS File the supported browsers are not shown next to the auto completion dialog. There is just the word "css core" written. All browsers are selected in the preferences.8
416APSTUD-4605Inconsistent display of JS self-invoked functions in the outlineThe following code generates a self-invoked function node for the function that is assigned to the variable. However, it does not create a node for the second self-invoked function, placing the internal element as they are global in the file (see outline screenshot). The outline should probably display some sort of wrapping node for those self-invoking functions all the time. {code:javascript} var someOtherTest = (function() { var api = {}; api.test = 'test'; api.someMethod = function() { var blah = 'test'; return blah; }; return api; })(); (function() { var xyz = 10; function abc() { } })(abc); {code}8
417APSTUD-4607copying the "full line" fails if the word wrap feature is enabledIf you have a long line and enable the word wraping feature, you can't copy a complete line. You just get the content of the "displayed line" but not the wrapped part. How to reproduce. 1: Write a very long line 2: Enable the word wraping 3: Select the line by pressing shift + arrow down 4: Copy the line 5: Paste the code someware8
418APSTUD-4610Improve text hover for CSS element selectorsWe don't currently offer useful hovers for html elements used as CSS selectors. The implementation would likely mirror the hovers offered over element names in HTML tags, but would be triggered from hovering over the name in CSS.8
419APSTUD-4611Improve text hover for CSS pseudo elements and classesWe don't currently offer useful hovers for psuedo elements and classes used in CSS selectors. Docs on the various elements allowed would be useful in the CA proposal, and full docs on the element/class in hover would as well.8
420APSTUD-4614Port PHP 5.4 support parser/lexerPort the PDT support for PHP 5.4 and make the same code adjustment we have made for previous versions. This includes porting the PHP 5.4 PhpAstParser and changing its hierarchy to fit the Studio's PHP AST hierarchy. 20
421APSTUD-4615Create a new PHP54TokenMapper for the scopes mapping# Port the latest PHP 5.4 parser constants # Create a new PHP54TokenMapper to map the constants to the theme scopes.13
422APSTUD-4616Port and load the PHP 5.4 built-ins# Port the built-in PHP 5.4 files # Parse those as part of the built-in parsing. # Add PHPBuiltins support functions for querying elements for 5.4 support (like the rest) 13
423APSTUD-4617Add PHP 5.4 option to the project creation and propertiesOnce the core support for the PHP 5.4 is in place, we need to add an option to create a project in a PHP 5.4 library compatibility. Also, we need to allow changing support level via the project properties. 5
424APSTUD-4618Make required adjustments in the PHP code formatter to support PHP 5.4PHP 5.4 probably adds new nodes into the PHP AST, so the PHP formatter will have to support the new additions by implementing specific formatting for those.20
425APSTUD-4619Add PHP 5.4 trait declarations in the outlineMake modifications to the outline (e.g. add nodes) to display the PHP 5.4 trait declarations. 8
426APSTUD-4622Determine best approach for walking AST to match patternsSome suggested approaches include: * XPath * Tree pattern matching * Tree parsers * Parallel XPath This mechanism would likely be used for more than just HTML AST walking.13
427APSTUD-4623Implement engine to read AST-pattern-matching syntaxNULL20
428APSTUD-4624Define rules to replace existing HTML Tidy rulesNULL13
429APSTUD-4625Add AST "Live view" to HTML editor to show the AST of a selected area of the documentWhen writing new rules that apply to the AST of a HTML document, it will be invaluable to get a preview of the AST of a specified area. Ideally, the live view allows users to click or select some piece of code and see the AST (or it could just be the AST of the whole document as an outline). Additionally, the user could type in a rule in the form expected by the validation engine, and see the resultant matching nodes in the tree or the document.13
430APSTUD-4626Investigate difference in speed of editor opening between Studio 1.5 and 3.0NULL20
431APSTUD-4627JavaScript: Outline view does not descend into functionsThe Javascript Outline view in Studio 3 almost displaying nothing of my code while the same outline in Eclipse WTP displays a lot more. Here the problem seems to be that the code is hidden inside a function. See the attachments. I expect the methods to be displayed but they are not.8
432APSTUD-4628Confirm Overwrite dialog appears when copying and pasting a file in Project Explorer# Create a new Web Project # Create a new file, of any type # Select that file in the Project Explorer # Copy # Paste At this point, a dialog appears indicating that items may be overwritten. If you click "No", the paste is aborted. If you click "Yes", you get another dialog allowing you to rename the file. We shouldn't show the first dialog.5
433APSTUD-4634Autocomplete (html editor) breaks multiline edit/block selection modeThe autocomplete disregards if in multiline edit mode, either is should be turned off when in this mode, or the completion should be applied to each line in the edit. To Reproduce: 1: Open a new html document 2: Press enter twice 3: Press SHIFT+ALT+A to turn on multiline edit 4: Hold down shift and press the up arrow key twice 5: Type: <a> Expected result: {code} <a> <a> <a> {code} OR {code} <a></a> <a></a> <a></a> {code} Actual Result {code} <a></a> {code} 13
434APSTUD-4637Invalid scope selectors in default Studio themeI'm seeing the following error in my log file on startup. I also get these when I change from the Studio theme to the Studio 2.x them, apply, then back again. {code} !ENTRY com.aptana.scripting 4 0 2012-04-11 10:17:37.090 !MESSAGE (Build 3.0.0.qualifier) [ERROR] An error occurred while parsing scope '--Console--' : Cannot recover from the syntax error !ENTRY com.aptana.scripting 4 0 2012-04-11 10:17:37.091 !MESSAGE (Build 3.0.0.qualifier) [ERROR] An error occurred while parsing scope '--Misc.--' : Cannot recover from the syntax error {code} This are showing up now because we're actually parsing scope selectors whereas before we were simply splitting strings. I do wonder why categories like "-Common-" are not showing. It may be that parse recovery is dropping the final dash.8
435APSTUD-4638Duplicate items in Project Explorermost items (but not all) appear twice in Project Explorer - this includes folders, py files, txt files, bat files, xml files, exe files etc. The project was imported using Import Project\General\Existing Folder as New Project. Asked about on [Stack Overflow|http://stackoverflow.com/questions/10087579/files-folders-appear-twice-in-aptana-studios-project-explorer] See small screen capture to get a sense 8
436APSTUD-4640CSS3 multiple backgroundsAptana displays an error, when i use multiple backgrounds, which is specified in CSS3 and implemented in Firefox 4, Chrome 11, Safari 5 and IE9. This affects to all background-properties. Example: .class{ background: /* first image */ url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAJCAIAAADLmSmUAAABD0lEQVQ4y7XRTU+DMBgH8H7/zzIZHkiYGKjQuhrG+0sohRGC8zQPM0M8TPQJRA/GGA/0f2qf/J7maYseu+7jHxn6vmvbxSW6VlXB+TiOf7jXvr8nRFGUSogFJSUEAVXXa2+3exuGX93z8XiH8dVqJUMi27ZN09Q0bUvpy+n0w8Ez3mw2uq5jjGVIFEWR7/uMMcMwsGU9HQ4zer9c4FPAWZblum4YhjIk4pwXRZGmqed5MM6tYbRN05/Poe9DM6U0CII8z8HIkKiu66qqyrKEPYyzZYwQ8sCY4zgwYBzHgIQQYGRItJ8CDbCHapZl8HRBGCZJAs1wj/m4/VeWlahpmm8NVWjgU2B2WNdTZiBDfgKmsd2Vs3fAngAAAABJRU5ErkJggg==') repeat-x top, /* second image */ url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAJCAIAAADLmSmUAAAArUlEQVQ4y8WQ2wqDMAyG+/4PKG1qXJmIUudweBh4aBaVHZg7XKzD7yoJX8hPxG5TxMbnQ62jmc8eIv7DFAdrMZx4ubAMAWBvTJHnqLVfUxBR0zSchPtHe6k5ICiVxPEwDJNZ137N6TzTdV1sjFIKozscnye5tc45uuLXFDfbjWOWpkpKNnAOrgFOZUkrPJriaeFYFCBlEAT8o3Pb0nu8mGJt11WVJknf9/SN380L7V4EhCKRZJQAAAAASUVORK5CYII=') repeat-x bottom; }5
437APSTUD-4641Scope parser should report syntax errorsScopeParser should collect error recovery and syntax error messages during parsing. These items should then be emitted to the log as errors. We may want to consider them warnings if the parser was able to recover. For example, we currently get no messaging when parsing "-Console-". Most likely, the last "-" is being dropped (one of Beaver's recovery strategies) and is being parsed as "-Console". We should at least get a warning in this case.5
438APSTUD-4643Lots of HTML warnings about converting elements to enum values{code} !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.376 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name html to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.384 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name elements to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.435 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name attribute-refs to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.435 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name attribute-refs to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.436 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name browsers to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.437 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name browsers to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.437 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name event-refs to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.438 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name event-refs to enum value !ENTRY com.aptana.editor.html 2 0 2012-04-12 12:11:22.438 !MESSAGE (Build 3.0.3.1334178607) [WARNING] Unable to convert element with name references to enum value {code}5
439APSTUD-4644Convert CSS AST to a generalize tree structureOur current CSS AST nodes do not make use of the parent-child relationship as implied by the IParseNode interface. Instead, collections of child nodes are placed into arrays/collections which hang off of node properties. This makes it difficult to apply a process to the tree as a whole. We will need to create a CSS node type that is used to as a collection of nodes. Then we can rely on child position to retrieve the elements that are now being placed in fields. Once this change is done, this will certainly impact code that relies on the current shape of the AST: formatting, folding, outline, etc.13
440APSTUD-4646Unsupported CSS syntax in Google Closure libraryDuring testing, I noticed that we have a number of error markers on the closure-library project. Digging deeper, I'm seeing non-standard syntax for Mozilla. As an example: {code} @-moz-document url-prefix() { .g-section { overflow: hidden; } } {code} The CSS parser fails at url-prefix() and error recovery seems to have trouble recovering for a while after that. Another failure occurs with an equal sign within a function: {code} .goog-custom-button-disabled { background-image: none !important; opacity: 0.3; -moz-opacity: 0.3; filter: alpha(opacity=30); } {code} And another occurs at the second colon in the filter property: {code} #t3 { filter:progid:DXImageTransform.Microsoft.DropShadow(color='#e7e7e7', offX='2',offY='2'); box-shadow: 2px 2px 0 #e7e7e7; -moz-box-shadow: 2px 2px 0 #e7e7e7; -webkit-box-shadow: 2px 2px 0 #e7e7e7; } {code}13
441APSTUD-4647JS parser unable to handle character class with a forward slash in itWe currently getting an error on the ']' for the following regex in JS: {code} var allowedInFragment = /[A-Za-z0-9\-\._~!$&'()*+,;=:@/?]/g; {code} Removing the / in the character class removes the error. A minimal example that recreates the issue follows: {code} var r = /[/]/; {code}13
442APSTUD-4648Add command-line option to load the rubles sequentiallyWe should add a command-line option to allow for sequential loading of bundles. It would make testing much easier. It could either be to load all bundles sequentially, or it could enforce a maximum number of bundles that can be loaded at a time (which I would set to 1), something like: studio.loadBundlesSequentially, or studio.bundleLoadConcurrency Note, I also believe BundleManager.loadBundle() does not properly respect the wait parameter. Unless you are unit testing, it does nothing. 5
443APSTUD-4649Consider allowing binary data in IndexesOur current indexing implementation allows for string data only to be written to the index. In order to take advantage of some more compressed and more performant data formats, we would need to allow binary data to be written. Note that supporting binary data directly would be a large change. Alternately, we could convert the binary data to an ASCII format, like base64, but in my opinion, the additional overhead of performing that conversion may defeat the benefit we would gain from using one of the binary formats directly. Another alternate might be to use a system next to indexing. That could be a separate file (or files) that contain the binary data where the entries in the index simply point to those files.13
444APSTUD-4650Revisit the loading of samples from Rubles to prevent multiple reloads of the same contentIt appears that the samples are being loaded twice from Rubles. I have my whole of samples list deleted (but then it's re-added). Turn on the relevant troubleshooting items and restart Studio to see the following log messages: {code} !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:42.008 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.kitchensink.ipad; name = Kitchen Sink iPad !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:42.010 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.kitchensink; name = Kitchen Sink !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:42.010 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.kitchensink.nook; name = Kitchen Sink Nook !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:42.011 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.rss; name = RSS Reader !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:42.011 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.mapping; name = Geocoder !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:42.011 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.todo; name = Todo List !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.830 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Removed all existing samples !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.835 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager adding the list of samples !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.835 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.mapping; name = Geocoder !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.835 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.rss; name = RSS Reader !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.836 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.todo; name = Todo List !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.837 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.kitchensink; name = Kitchen Sink !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.849 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.kitchensink.nook; name = Kitchen Sink Nook !ENTRY com.aptana.samples 1 0 2012-04-14 05:08:48.850 !MESSAGE (Build 3.0.0.qualifier) [INFO] com.aptana.samples/debug/manager Added sample: id = com.appcelerator.titanium.mobile.samples.kitchensink.ipad; name = Kitchen Sink iPad {code} I get a script loaded event for /Users/ingo/Documents/Projects/Aptana/rubles/text.ruble/bundle.rb which deletes all my samples. It seems like we should only delete (and re-add) the samples associated with my bundle, not the whole lot. FWIW, TemplateManager seems to only listen for ElementVisibility. When I comment out the load-cycle listener, it seems to still work fine and I don't get the add/remove/add. Also, If it do the same ModelFilter and comment out the remove part of loadBundleSampleElements() (make it the same effectively as loadTemplatesFromBundles()) It also seems to work fine for me.8
445APSTUD-4651Switch HTML scanner over to JFlexCurrently, we're using the Eclipse IRule system for our HTML parser's lexer. We were doing this for JS and then switched to JFlex to improve performance. I don't recall the exact improvement factor for scanning, but I believe our JS parse became roughly 6x faster with that change. We should consider moving to JFlex for HTML for the same reasons. Also, we're doing multiple passes to parse attributes. We should be able to do this in a single pass. That alone would help parsing speed.13
446APSTUD-4652Switch CSS scanner over to JFlexCurrently, we're using the Eclipse IRule system for our CSS parser's lexer. We were doing this for JS and then switched to JFlex to improve performance. I don't recall the exact improvement factor for scanning, but I believe our JS parse became roughly 6x faster with that change. We should consider moving to JFlex for CSS for the same reasons.13
447APSTUD-4653Switch HTML parser over to BeaverOur current HTML parser is a hand-written recursive-descent parser. It is quite simple, but these types of parsers are typically slower than equivalent LR parser. We should switch the HTML parser over to Beaver to get the performance gains we see from that parsing engine.20
448APSTUD-4654Use JFlex scanner for JavaScript colorizationWe're currently using Eclipse IRules for colorization. From experience with the JS parsing infrastructure, we have found that we can get a good performance improvement by switching over to a JFlex-based scanner. We should consider moving all languages from IRules over to JFlex for this reason.13
449APSTUD-4655Use JFlex scanners for JavaScript partitioningWe're currently using Eclipse IRules for partitioning. From experience with the JS parsing infrastructure, we have found that we can get a good performance improvement by switching over to a JFlex-based scanner. We should consider moving all languages from IRules over to JFlex for this reason.5
450APSTUD-4661Refresh using Native Hooks or Polling Can't be Turned off (reappears after restart)I've just upgraded to the latest aptana release (3.1.1.201204131931) and immediately hitting cpu usage issues with the CPU jumping to 90%ish every few seconds corresponding to a refresh of the workspace every few seconds. So I guess on my system Aptana the option 'Refresh using Native hooks or polling' is polling rather than hooks as it happens regardless of whether or not I'm doing anything. I've traced it down to the 'Refresh using Native Hooks or Polling' which is under the Workspace menu. If I turn it off, the system quietens down and all is fine. However, on a restart, this 'option' has reselected itself meaning (I guess) that the option is not reading it's setting correctly from the options saved (or perhaps isn't getting saved to the file?) So the bug I'm reporting here is the preference can't be set beyond a restart and, of course, like all preferences it should be. A second bug I guess is quite why the refresh of the workspace uses so much CPU - my system has 8000 files on a fairly old machine so I'm guessing it's hitting limits on my machine (results will of course vary on other machines). I've commented on that before (in the forums) and it was all fine in version 3 until now. I'll repeat my guess that there is a very inefficient method involved in the refresh of the workspace that still hasn't been resolved. Anyway - hopefully to replicate ... Type Workspace in to the preferences and select Workspaces at the bottom to get the "Refresh ... " option. Unselect it. Restart the studio, go back to that preference and you'll (hopefully) see it selected again. I've attached two images - the first when I deselected the option. The second when I restarted showing the option has been selected again.8
451APSTUD-4662Unable to cloak foldersWhy, after new updates, I am unable to cloak folders anymore? -- To reproduce: # Set up a FTP connection with a project using the instruction here: https://wiki.appcelerator.org/display/tis/FTP%2C+SFTP%2C+and+FTPS+Deployment#FTP%2CSFTP%2CandFTPSDeployment-AssociateaFTPConnectionwithaProjectUsingProjectExplorer; # Right-click on a folder in the project and select "Publish > Cloak this file type". Expected result: the folder will show a cloaking decorator. Actual result: no decorator is added to the folder icon. 8
452APSTUD-4663Git doesn't recognize file changesAfter updating to version 3.1.1.201204131931, Git doesn't recognize file changes anymore and commit option stays disabled. Also there are no asterisk character next to file name. Restarting Aptana helps so that changed files are now marked with asterisk and commit is enabled, but again new changes are ignored.8
453APSTUD-4665Improve "Insert Proposal' trigger character logicFor some users, they run into this situation: 'When using YUI, each time I try to write "Y." it changes it to "YUI.". When I use "e" in event listeners and write "e."... "else."' There is probably an improved algorithm we can use when doing this.13
454APSTUD-4666Reverting an unstaged file deletion in git doesn't restore the deleted fileIf you've deleted a file but haven't staged/committed that deletion, you'll see it in your commit dialog. If you choose to "revert" that deletion, it'll disappear fromt he commit dialog, but won't actually get restored. We likely need to handle "revert"ing deleted files specially and run "git checkout -- <file-path>"8
455APSTUD-4670Multiple saves of same file => multiple listings of file in git commit dialogueIt appears that each time a file is saved, it's added to the unstaged list, even if it's already there. This can lead to very long and repetitive list of files in the git commit dialogue. It can also cause changes not to be displayed correctly. This behaviour appears to have arrived with version 3.1.1.8
456APSTUD-4671Code completion does not work from the context of another fileSee attached example8
457APSTUD-4677Conflicting dependency when update Aptana on beta or nightly repoI've already tried to start Aptana as administrator and reload update site, then "check for update" but with no luck. {quote} Cannot complete the install because of a conflicting dependency. Software being installed: Aptana Studio 3 RCP 3.1.2.201204171523-7n7hFDFFFaDpxVlmWKlXYz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204171523-7n7hFDFFFaDpxVlmWKlXYz0uIWid) Software currently installed: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) Only one of the following can be installed at once: WebKit Browser for SWT (win32/x86) 1.0.0.1334007647 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1334007647) WebKit Browser for SWT (win32/x86) 1.0.0.1295409059 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1295409059) Cannot satisfy dependency: From: Aptana Studio 3 Core 3.1.2.1334698020-BG7H8KBR7iEI6aVGF8JC34EXlsxO (com.aptana.feature.feature.group 3.1.2.1334698020-BG7H8KBR7iEI6aVGF8JC34EXlsxO) To: com.aptana.webkitbrowser.feature.feature.group [1.0.0.1334007647-7A--7QhhqHIG6rF] Cannot satisfy dependency: From: Aptana Studio 3 RCP 3.1.2.201204171523-7n7hFDFFFaDpxVlmWKlXYz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204171523-7n7hFDFFFaDpxVlmWKlXYz0uIWid) To: com.aptana.feature.studio.feature.group [3.1.2.201204171503-7E7E57ICGLFYLNFPETJRBBYmp44X] Cannot satisfy dependency: From: Aptana Studio 3 Plugin 3.1.2.201204171503-7E7E57ICGLFYLNFPETJRBBYmp44X (com.aptana.feature.studio.feature.group 3.1.2.201204171503-7E7E57ICGLFYLNFPETJRBBYmp44X) To: com.aptana.feature.feature.group [3.1.2.1334698020-BG7H8KBR7iEI6aVGF8JC34EXlsxO] Cannot satisfy dependency: From: Aptana WebKit Browser Integration 1.0.0.1334007647-7A--7QhhqHIG6rF (com.aptana.webkitbrowser.feature.feature.group 1.0.0.1334007647-7A--7QhhqHIG6rF) To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1334007647] Cannot satisfy dependency: From: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1295409059] {quote} Messages in error log after Aptana startup: {quote} !ENTRY org.eclipse.core.jobs 2 2 2012-04-19 10:14:35.268 !MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: com.aptana.usage.StudioAnalytics$1 {quote} Messages in error log after pressing check for update: {quote} !SESSION 2012-04-19 10:14:41.798 ----------------------------------------------- eclipse.buildId=unknown java.version=1.6.0_24 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=uk_UA Command-line arguments: -os win32 -ws win32 -arch x86 !ENTRY org.eclipse.equinox.p2.operations 4 0 2012-04-19 10:15:59.518 !MESSAGE Operation details !SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Cannot complete the install because of a conflicting dependency. !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE Software being installed: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE Software currently installed: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Only one of the following can be installed at once: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1334007647 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1334007647) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1295409059 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1295409059) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE From: Aptana Studio 3 Core 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO (com.aptana.feature.feature.group 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE To: com.aptana.webkitbrowser.feature.feature.group [1.0.0.1334007647-7A--7QhhqHIG6rF] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE From: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE To: com.aptana.feature.studio.feature.group [3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE From: Aptana Studio 3 Plugin 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W (com.aptana.feature.studio.feature.group 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE To: com.aptana.feature.feature.group [3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1334007647-7A--7QhhqHIG6rF (com.aptana.webkitbrowser.feature.feature.group 1.0.0.1334007647-7A--7QhhqHIG6rF) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1334007647] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.518 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.518 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1295409059] !ENTRY org.eclipse.equinox.p2.operations 4 0 2012-04-19 10:15:59.565 !MESSAGE Operation details !SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Cannot complete the install because of a conflicting dependency. !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE Software being installed: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE Software currently installed: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Only one of the following can be installed at once: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1334007647 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1334007647) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1295409059 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1295409059) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE From: Aptana Studio 3 Core 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO (com.aptana.feature.feature.group 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE To: com.aptana.webkitbrowser.feature.feature.group [1.0.0.1334007647-7A--7QhhqHIG6rF] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE From: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE To: com.aptana.feature.studio.feature.group [3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE From: Aptana Studio 3 Plugin 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W (com.aptana.feature.studio.feature.group 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE To: com.aptana.feature.feature.group [3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1334007647-7A--7QhhqHIG6rF (com.aptana.webkitbrowser.feature.feature.group 1.0.0.1334007647-7A--7QhhqHIG6rF) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1334007647] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.565 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.565 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1295409059] !ENTRY org.eclipse.equinox.p2.operations 4 0 2012-04-19 10:15:59.580 !MESSAGE Operation details !SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Cannot complete the install because of a conflicting dependency. !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE Software being installed: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE Software currently installed: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Only one of the following can be installed at once: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1334007647 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1334007647) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1295409059 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1295409059) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE From: Aptana Studio 3 Core 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO (com.aptana.feature.feature.group 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE To: com.aptana.webkitbrowser.feature.feature.group [1.0.0.1334007647-7A--7QhhqHIG6rF] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE From: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE To: com.aptana.feature.studio.feature.group [3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE From: Aptana Studio 3 Plugin 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W (com.aptana.feature.studio.feature.group 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE To: com.aptana.feature.feature.group [3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1334007647-7A--7QhhqHIG6rF (com.aptana.webkitbrowser.feature.feature.group 1.0.0.1334007647-7A--7QhhqHIG6rF) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1334007647] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:15:59.580 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:15:59.580 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1295409059] !ENTRY org.eclipse.equinox.p2.operations 4 0 2012-04-19 10:16:03.075 !MESSAGE Operation details !SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot complete the install because of a conflicting dependency. !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE Software being installed: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE Software currently installed: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Only one of the following can be installed at once: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1334007647 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1334007647) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1295409059 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1295409059) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE From: Aptana Studio 3 Core 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO (com.aptana.feature.feature.group 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE To: com.aptana.webkitbrowser.feature.feature.group [1.0.0.1334007647-7A--7QhhqHIG6rF] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE From: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE To: com.aptana.feature.studio.feature.group [3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE From: Aptana Studio 3 Plugin 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W (com.aptana.feature.studio.feature.group 3.1.2.201204181823-7E7E57ICGLGYJRLa5SJRBBYmp45W) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE To: com.aptana.feature.feature.group [3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1334007647-7A--7QhhqHIG6rF (com.aptana.webkitbrowser.feature.feature.group 1.0.0.1334007647-7A--7QhhqHIG6rF) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1334007647] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE From: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE To: com.aptana.swt.webkitbrowser.win32.x86 [1.0.0.1295409059] !ENTRY org.eclipse.equinox.p2.operations 4 0 2012-04-19 10:16:03.075 !MESSAGE Operation details !SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot complete the install because of a conflicting dependency. !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE Software being installed: Aptana Studio 3 RCP 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid (com.aptana.feature.rcp.feature.group 3.1.2.201204181911-7n7hFDFFFaDpxVlmZKwXUz0uIWid) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE Software currently installed: Aptana WebKit Browser Integration 1.0.0.1333565899-7A--7QdvIxv-tM0 (com.aptana.webkitbrowser.feature.group 1.0.0.1333565899-7A--7QdvIxv-tM0) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Only one of the following can be installed at once: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1334007647 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1334007647) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE WebKit Browser for SWT (win32/x86) 1.0.0.1295409059 (com.aptana.swt.webkitbrowser.win32.x86 1.0.0.1295409059) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2012-04-19 10:16:03.075 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE From: Aptana Studio 3 Core 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO (com.aptana.feature.feature.group 3.1.2.1334796284-BG7H8KBR7jCUERXAJ8JC34EXlsxO) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2012-04-19 10:16:03.075 !MESSAGE To: com.aptana.webkitbrowser.feature.feature.group [1....8
458APSTUD-4680Error when formatting PHP codeh3. Steps to reproduce # Copy-paste callerservice.php from http://tareqalam.wordpress.com/2010/07/07/paypal-recurring-payment-integrated-with-codeigniter/ # Ctrl/Cmd-Shift-F on the file # Error occurs h3. Error Details Date: Thu Dec 08 15:32:24 CET 2011 Message: Error while formatting the code in your editor.Please submit a bug report through Studio's support and include the relevant code which triggered this error. Severity: Error Product: Aptana Studio 3 3.0.6.201110251455 (com.aptana.rcp.product) Plugin: com.aptana.formatter.epl Session Data: eclipse.buildId=unknown java.version=1.6.0_29 java.vendor=Apple Inc. BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US Framework arguments: -keyring /Users/alex/.eclipse_keyring -showlocation Command-line arguments: -os macosx -ws cocoa -arch x86 -keyring /Users/alex/.eclipse_keyring -consoleLog -showlocation8
459APSTUD-4682Placing plugin under dropins folder do not make him load under standalone Aptana Studio 3.1.1After installing standalone Aptana Studio 3.1.1, plugin is not initialized after putting it into {{dropins}} folder. To make clear, for Aptana Studio 3.0.9 standalone it was possible to place {{features}} and {{plugins}} folder of some plugin into the {{dropins}} folder and after that plugin loads automatically at studio startup. That is documented at [http://wiki.eclipse.org/Equinox_p2_Getting_Started#Supported_dropins_formats] and [http://www.venukb.com/2006/08/20/install-eclipse-plugins-the-easy-way/]. h3. To reproduce # Download [Regex Util|http://myregexp.com/eclipsePlugin.html] plugin. It is small and handy plugin and always worked with all Aptana versions. # Under Aptana Studio 3.1.1 placing its files under {{dropins}} do not make it load. Error log is empty, and Aptana starts as usual, but... without Regex Util plugin. # The same thing (placing plugin files under {{dropins}} folder) with Eclipse 3.7.2 (indigo) is ok. Plugin is loaded normally as usual. Attached file {{configuration.log}} is log info from Help -> About Aptana Studio 3 -> Installation Details -> Configuration tab.8
460APSTUD-4684Limit number of columns colored to improve performanceI found that limiting the number of StyleRanges used makes a huge difference in performance for minified JS files. A simple fix is to limit to not add any more ranges past the 200th column of any line in ThemingDamagerRepairer. there may be additional gains if we can reduce the number of ranges we generated (say skip ones that match the default fg/bg colors).8
461APSTUD-4688Certain comments break PHP formattingCertain comments will cause the formatter to fail. For example: {code:php} <?php class test { private $bli = array(/* bla */); } ?> {code} Details from troubleshooter: {quote} (Build 3.0.0.1332346356) [ERROR] Formatted content differ around position 47 INPUT: y(); } ?> /* */ OUTPUT: y(); } ?> {quote} I've also seen problems with comments between if and else statements; but I can't seem to reproduce the errors there. iirc it was something like this: {code:php} if ($bli == true) { doStuff(); } // A comment // A comment else if ($bla == true) { doOtherStuff(); } {code} Same goes for complex assoc. arrays (might be the comma on the last element) same as before, hard to reproduce in test code: {code:php} $config['button'] = array( 'label' => array( 'left' => 0, 'fontsize' => 0, // signal not to use count ), 'labelgs' => array( 'file' => 'images/buttons.png', 'cache_ttl' => 3600, ), ); {code}5
462APSTUD-4690Investigate replacement for JSLintThis ticket involves the investigation of the complexity in replacing JSLint with our own validation framework http://www.jslint.com/ # What rules do we need to encapsulate For ease in migration for existing users, it us suggested we accept the current comment-based options that JSLint allows.20
463APSTUD-4691Investigate creating JSHint-identical validatorThis ticket involves the investigation of the complexity in replacing JSHint with our own validation framework http://www.jshint.com/ # What rules do we need to encapsulate # Will the current approach (Xpath + custom AST walking) allow for the validation of all these cases For ease in migration for existing users, it is suggested we accept the current comment-based options that JSHint allows.20
464APSTUD-4692Research the available options to interact with JIRA from StudioPossible options: 1. Use JIRA SOAP service: https://developer.atlassian.com/display/JIRADEV/JIRA+RPC+Services; 2. Use Atlassian connector and part of Mylyn that are relevant to JIRA support; 3. Use JIRA CLI tool (https://studio.plugins.atlassian.com/wiki/display/JCLI/JIRA+Command+Line+Interface).13
465APSTUD-4693Implement a Jira Manager classThe class should handle all requests need to complete the workflow of creating a ticket in JIRA from within Studio, e.g. 1. User login 2. Submit the ticket to JIRA with all the related fields And possibly more. The class should report errors when encountered, and there should be unit tests to cover each scenario. 13
466APSTUD-4694Provide a preference page to manage user's JIRA accountThe preference page will allow user to enter their JIRA username and password, as well as a link to create an account. The account information should persist upon Studio restart. 5
467APSTUD-4695Create the UI for user to submit a JIRA ticketThere will be a Help > Studio > Submit a Ticket menu, and clicking on it will display a dialog where user could enter the following information: * Type: Bug, feature, or improvement * Summary * Steps to reproduce * Screenshots (if desired) We could automatically obtain the following from the IDE: * Project (Aptana Studio or Titanium Studio) * Affects version (Studio version, either from the about box for Standalone or the branding plugin for Eclipse plugin case) We should attach Studio log file and output from Help > Studio > Run Diagnostic Test. We could auto-attach or have checkboxes so user could choose not to (checked by default). Once the ticket is successfully submitted, we should pop up a corresponding message with a link to the created ticket. 8
468APSTUD-4696Linebreak in git commit messages is wrongIn the git history view the linebreak in the commit messages is not displayed/ignored. That means that long commit messages are very hard to read. Please see the picture i added for you. You see the same log in the Terminal and in Aptana. # The list view should only display the first line of the message (the "Subject") # The details view should display the messages with proper line breaks.8
469APSTUD-4697PHP Outline is not generated (dependent on HTML content in a variable)If file contains a string variable containing HTML with an "attribute injection", the Outline won`t generate. Example I (Outline isn`t generated): function failTest () { $value = ' class="fail"'; return '<span'.$value.'></span>'; } Example II (Outline is generated): function okTest () { $value = 'success'; return '<span>'.$value.'</span>'; } Example III (Outline is generated): function okTest () { $value = 'success'; return 'span>'.$value.'</span'; }5
470APSTUD-4699Aptana forces the path of the Document root on server to start with a "/" (slash)There is some problem in Window platform, it cause unable to start php debug. I use PDT with xDebug few year and no problem at all, but move to aptana, it not work. Version : Aptana studio 3 nightly Windows 7 32bit pro PHP 5.2.6 Apache 2.2.9 xDebug 2.1.2-5.2-vc6-nts.dll Problem: All problem come from the web servers setting -Preferences -> Aptana Studio -> Web Server -> simple web server or external web server (both of them have this bugs.) On the Document Root , if i select my web root and press [OK] Aptana automatic add a slash to the path, if i remove manully and press [OK], aptana will add it again forever. See screen shot: !http://i.imgur.com/lz1Xr.png! !http://i.imgur.com/mrOeT.png! This cause not able to start the url after i press Debug button, Aptana will translate the url to [LocalPath] + [HTTP Url] see screenshot: !http://i.imgur.com/IYvCW.png! This's not happen on ubuntu OS, only on windows OS.bugs5
471APSTUD-4701Ruble::Editor.open("/full/path/to/file") pulls up additional tmp fileIt opens up the file I am intending it to open, but then it also opens up an additional tmp file, not sure why.8
472APSTUD-4703Fix revert systemWhen we deploy a new Aptana (or Titanium) release, we deploy it to a new location each time on Amazon S3, or to the same location (but wiping the old contents) on download.appcelerator.com. It appears that the P2 system now requires the old update site to exist in order to be able to revert to the previous version. Suggest that we use the "mirror" task to merge in the previous versions (though Chris has suggested their might be a different approach to use as well) {code} <p2.mirror source="${p2.build.repo}"> <destination kind="metadata" location="${p2.repo.location}" compressed="${p2.compress}" name="${p2.metadata.repo.name}" /> <destination kind="artifact" location="${p2.repo.location}" compressed="${p2.compress}" name="${p2.artifact.repo.name}" /> <slicingoptions includeoptional="false" /> </p2.mirror> {code} So, when deploying 3.1.1, we merge in 3.1.0. We can keep the repos to merge in on the build server (we do them as tagged builds now) and update those references as part of updating version #s. However, maybe there is a better way to automatically figure out where these repos to merge in live. h3. Suggested Fix # Upgrade the two deployment scripts (the bash one for Titanium Studio and the Ruby release one for Studio 3) to take a list of versions and merge those into a new repo # Upload the new repo to the same location as before # Test the combined version by installing Version A, upgrading to version B, and being able to revert to version A (assuming A & B are both versions on the update site)20
473APSTUD-4704GUI error: java/util/regex/Pattern$4Everytime a editor window/tab with a css-file gets the focus, the following error shows: java/util/regex/Pattern$4 !ENTRY org.eclipse.ui.workbench 4 2 2012-04-23 09:25:22.174 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench". !STACK 0 java.lang.NoClassDefFoundError: java/util/regex/Pattern$4 java.util.regex.Pattern.caseInsensitiveRangeFor(Unknown Source) java.util.regex.Pattern.range(Unknown Source) java.util.regex.Pattern.clazz(Unknown Source) java.util.regex.Pattern.sequence(Unknown Source) java.util.regex.Pattern.expr(Unknown Source) java.util.regex.Pattern.group0(Unknown Source) java.util.regex.Pattern.sequence(Unknown Source) java.util.regex.Pattern.expr(Unknown Source) java.util.regex.Pattern.compile(Unknown Source) java.util.regex.Pattern.<init>(Unknown Source) java.util.regex.Pattern.compile(Unknown Source) com.aptana.editor.css.parsing.CSSTokenScanner$2.wordOK(CSSTokenScanner.java:226) com.aptana.editor.common.text.rules.ExtendedWordRule.evaluate(ExtendedWordRule.java:65) org.eclipse.jface.text.rules.RuleBasedScanner.nextToken(RuleBasedScanner.java:174) com.aptana.editor.css.parsing.CSSTokenScanner.nextToken(CSSTokenScanner.java:277) com.aptana.editor.css.parsing.CSSScanner.nextToken(CSSScanner.java:93) beaver.Parser$TokenStream.readToken(Parser.java:302) beaver.Parser$TokenStream.nextToken(Parser.java:205) beaver.Parser.parse(Parser.java:462) beaver.Parser.parse(Parser.java:439) com.aptana.editor.css.parsing.CSSParser.parse(CSSParser.java:141) com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:286) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:244) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:231) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:213) com.aptana.editor.common.AbstractThemeableEditor.getAST(AbstractThemeableEditor.java:1089) com.aptana.editor.common.outline.CommonOutlineContentProvider.getChildren(CommonOutlineContentProvider.java:37) com.aptana.editor.css.outline.CSSOutlineContentProvider.getChildren(CSSOutlineContentProvider.java:35) com.aptana.editor.common.outline.CommonOutlineContentProvider.getElements(CommonOutlineContentProvider.java:76) org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1010) org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:703) org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1336) org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:391) org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:917) org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:605) org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:805) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:782) org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644) org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:753) org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1533) org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833) org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1517) org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443) org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403) org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404) org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1510) org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280) org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690) com.aptana.editor.common.outline.CommonOutlinePage.createControl(CommonOutlinePage.java:187) org.eclipse.ui.views.contentoutline.ContentOutline.doCreatePage(ContentOutline.java:137) org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:408) org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:751) org.eclipse.ui.part.PageBookView$4.partActivated(PageBookView.java:1014) org.eclipse.ui.internal.PartListenerList2$1.run(PartListenerList2.java:70) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.runtime.Platform.run(Platform.java:888) org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:55) org.eclipse.ui.internal.PartListenerList2.firePartActivated(PartListenerList2.java:68) org.eclipse.ui.internal.PartService.firePartActivated(PartService.java:192) org.eclipse.ui.internal.PartService.setActivePart(PartService.java:306) org.eclipse.ui.internal.WorkbenchPagePartList.fireActivePartChanged(WorkbenchPagePartList.java:57) org.eclipse.ui.internal.PartList.setActivePart(PartList.java:136) org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3636) org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:3159) org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:279) org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98) org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:237) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058) org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1447) org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2320) org.eclipse.swt.widgets.Control.windowProc(Control.java:4572) org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1610) org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2061) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2526) org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method) org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3114) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3749) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410)8
474APSTUD-4706ClassCastException when indexing JavaScript files# Clear your log file # Check out https://github.com/aptana/studio3-sdk into your workspace # Check your log file. If no messages appear, try Project > Clean on that project You should see the following (sample--the file itself may differ and there will be more than one): {code} !ENTRY com.aptana.buildpath.core 4 0 2012-04-23 09:44:58.124 !MESSAGE (Build 3.1.0.qualifier) [ERROR] Error indexing L/Dojo_Aptana_Test/portal/sample/resources/configurations.js !STACK 0 java.lang.ClassCastException: com.aptana.editor.js.parsing.ast.JSInvokeNode cannot be cast to com.aptana.editor.js.parsing.ast.JSFunctionNode com.aptana.editor.js.inferencing.JSTypeUtil.applyDocumentation(JSTypeUtil.java:103) com.aptana.editor.js.inferencing.JSTypeUtil.applyDocumentation(JSTypeUtil.java:152) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.applyDocumentation(JSSymbolTypeInferrer.java:168) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.getSymbolPropertyElement(JSSymbolTypeInferrer.java:367) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.getSymbolPropertyElement(JSSymbolTypeInferrer.java:389) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.getScopeProperties(JSSymbolTypeInferrer.java:292) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.processParseResults(JSFileIndexingParticipant.java:216) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.index(JSFileIndexingParticipant.java:104) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:83) com.aptana.core.internal.build.LazyBuildParticipant.buildFile(LazyBuildParticipant.java:72) com.aptana.core.build.UnifiedBuilder.buildFile(UnifiedBuilder.java:518) com.aptana.core.build.UnifiedBuilder.doBuildFiles(UnifiedBuilder.java:431) com.aptana.core.build.UnifiedBuilder.buildFiles(UnifiedBuilder.java:408) com.aptana.core.build.UnifiedBuilder.fullBuild(UnifiedBuilder.java:302) com.aptana.core.build.UnifiedBuilder.build(UnifiedBuilder.java:148) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}3
475APSTUD-4707Write out which file failed to indexRelated to APSTUD-4706, the current error message does not indicate which file failed to index. This might need to be done once, or if per-language, it should be done for every language that does indexing. # It should attempt to index the file # If it fails to index, it should write out an error message with the path to the file and then continue onto the next file Suggest writing out something like: {code} !ENTRY com.aptana.buildpath.core 4 0 2012-04-23 09:44:58.124 !MESSAGE (Build 3.1.0.qualifier) [ERROR] Error indexing L/Dojo_Aptana_Test/portal/sample/resources/configurations.js !STACK 0 java.lang.ClassCastException: com.aptana.editor.js.parsing.ast.JSInvokeNode cannot be cast to com.aptana.editor.js.parsing.ast.JSFunctionNode com.aptana.editor.js.inferencing.JSTypeUtil.applyDocumentation(JSTypeUtil.java:103) com.aptana.editor.js.inferencing.JSTypeUtil.applyDocumentation(JSTypeUtil.java:152) ... {code}5
476APSTUD-4709"Widget is disposed" for search/replace barThe pydev search bar (CTRL+F) doesn't work in python files. I get "Widget is disposed" {code} !ENTRY org.eclipse.ui 4 4 2012-04-23 16:35:15.198 !MESSAGE "Find and Replace" did not complete normally. Please see the log for more information. !ENTRY org.eclipse.ui 4 0 2012-04-23 16:35:15.199 !MESSAGE Widget is disposed !STACK 0 org.eclipse.swt.SWTException: Widget is disposed org.eclipse.swt.SWT.error(SWT.java:4282) org.eclipse.swt.SWT.error(SWT.java:4197) org.eclipse.swt.SWT.error(SWT.java:4168) org.eclipse.swt.widgets.Widget.error(Widget.java:466) org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:403) org.eclipse.swt.widgets.Control.setEnabled(Control.java:3877) com.aptana.editor.findbar.impl.FindBarDecorator.showFindBar(FindBarDecorator.java:863) com.aptana.editor.findbar.impl.FindBarVisibilityControl.setVisible(FindBarVisibilityControl.java:77) com.aptana.editor.findbar.impl.FindBarDecorator.setVisible(FindBarDecorator.java:467) com.aptana.editor.findbar.impl.ShowFindBarAction.run(ShowFindBarAction.java:47) org.eclipse.jface.action.Action.runWithEvent(Action.java:498) org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.filterEvent(Display.java:1531) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294) org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730) org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3019) org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734) org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743) org.eclipse.swt.widgets.Control.windowProc(Control.java:5016) org.eclipse.swt.widgets.Display.windowProc(Display.java:4408) org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422) org.eclipse.swt.widgets.Display.eventProc(Display.java:1245) org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code}8
477APSTUD-4714Incorrect caret position for ScriptDoc Autocompleted comment blocks in JS EditorWhen inserting a ScriptDoc comment block (e.g. above a function statement), the autocompleted comment block contains an additional space after the {{\*}} character on the 2nd line, but the caret is positioned directly after the {{\*}} character. As a comparison, Aptana's CSS and PHP editors both position the caret _after_ the additional space on the 2nd line of the ScriptDoc block. Note: See attached image for more information8
478APSTUD-4717Switch-Statement in inline php produces syntax errorOpen a new file and enter the code shown in the attached screenshot. The syntax should be ok, but two syntax errors are shown. Furthermore something seems to be triggered constantly in the background as the red lines flicker and the app explorer window refreshes itself from time to time (some sort of flickers, too).13
479APSTUD-4718Allow setting the permissions for both the upload and download of FTP filesFile permissions are not preserved on file-download from ftp-remote-site. * File permissions always switch to 600 and folder permissions to 755. * No default permissions can be defined during ftp-download. (The FTP settings under "preferences" > "Aptana Studio" > "publishing" > "ftp" only work for the upload process and publishing. See attached file. Same as "advanced settings" while syncing. There should also be download-permission-settings.) In order to improve the process, suggest adopting a similar UI to Cyberduck (see attached image). * Upload section ** Preserve permissions ** Choose specific settings for files and folders * Download section ** Preserve permissions ** Choose specific settings for files and folders 20
480APSTUD-4721Error log about aptanaDB database not being foundWe've had this error spitting out to our logs _forever_! Can we please get rid of it? {code} !ENTRY com.aptana.usage 2 0 2012-04-26 12:15:06.059 !MESSAGE (Build 3.0.0.1334940636) [WARNING] An error occurred while shutting down the database !STACK 0 java.sql.SQLException: Database 'aptanaDB' not found. org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source) org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source) org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source) java.sql.DriverManager.getConnection(DriverManager.java:582) java.sql.DriverManager.getConnection(DriverManager.java:207) com.aptana.usage.AptanaDB.shutdown(AptanaDB.java:156) com.aptana.usage.UsagePlugin.stop(UsagePlugin.java:71) org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:771) java.security.AccessController.doPrivileged(Native Method) org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:764) org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:510) org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:565) org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1161) org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:595) org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257) org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215) org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284) org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:691) org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:598) org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:390) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:198) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) Caused by: java.sql.SQLException: Database 'aptanaDB' not found. org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 37 more {code}5
481APSTUD-4722Create stand-alone project so JSParser can be run from the command-line outside of EclipseOur current implementation of our JS parsing infrastructure does not allow the parser to be run outside of Eclipse. We need to extract the minimal set of classes that will de-couple our implementation from Eclipse and allow the parser to be run from the command-line. This code and any scaffolding should live in a separate repository.13
482APSTUD-4723Integrate stand-alone JSParser into Eclipse infrastructureOnce our JSParser can run stand-alone, we need to replace our current implementation. Ideally, the stand-alone code can be contained within an Eclipse project with an ant script that also builds the code for stand-alone use.20
483APSTUD-4724Not to show validation warning on empty HTML script tag with src attributeCurrently for the following code in HTML, {code} <script src="http://www.google.com"></script> <script src="/test.js"></script> {code} each line will show a validation warning on trimming empty the empty script tag, but in these cases, the tag should not be considered empty since the src attribute is taking the place of inline code, and removing the lines would cause issues. 5
484APSTUD-4725HttpFileStore.toLocalFile() fails to cache remote file if parts of local cache directory are already present# Create a new HttpFileStore pointing to http://www.google.com # Call toLocalFile() on it # Find the path it saved to on disk # Re-call toLocalFile() again. It should fail given that the path it cached to already exists (in my case, the http folder was already there)8
485APSTUD-4726Improve error messages in Outline view when external content is invalidh3. Steps to reproduce: # Create a new HTML file # Add the following content:\\ {code} <script src="http://www.google.com"></script> <script src="/test.js"></script> {code} # Expand each of the nodes in the outline ## "Cannot recover from syntax error" ## "Unable to resolve file" For both error messages, it writes them out to the log file as errors. They should instead be trace messages, and in both cases, they should contain the file trying to be read to make diagnosis easier.5
486APSTUD-4727XML: StringIndexOutOfBoundsException: String index out of range in OpenTagCloser.getOpenTag()Unfortunately not a repo case, but should be guarded against in code and a unit test added. {code} !ENTRY org.eclipse.ui 4 0 2012-04-13 16:34:06.939 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.StringIndexOutOfBoundsException: String index out of range: 0 java.lang.String.charAt(String.java:686) com.aptana.editor.xml.OpenTagCloser.getOpenTag(OpenTagCloser.java:286) com.aptana.editor.xml.OpenTagCloser.verifyKey(OpenTagCloser.java:93) org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195) org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5957) org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5656) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1412) org.eclipse.swt.widgets.Control.insertText(Control.java:1831) org.eclipse.swt.widgets.Canvas.insertText(Canvas.java:245) org.eclipse.swt.widgets.Display.windowProc(Display.java:5073) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:56) org.eclipse.swt.widgets.Composite.keyDown(Composite.java:587) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220) org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1959) org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2025) org.eclipse.swt.widgets.Display.windowProc(Display.java:5047) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4589) org.eclipse.swt.widgets.Display.applicationProc(Display.java:4666) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:115) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3281) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) {code}5
487APSTUD-4728NPE in MarkerManager.removeMarker()Unfortunately no repo case. MarkerManager also needs unit tests (class is about 400 lines) {code} !ENTRY com.aptana.editor.php 4 0 2012-04-20 15:39:00.026 !MESSAGE (Build 3.0.3.1333568321) [ERROR] PHP parser error !STACK 0 java.lang.NullPointerException com.aptana.core.internal.resources.MarkerManager.removeMarker(MarkerManager.java:169) com.aptana.core.internal.resources.UniformResourceMarker.delete(UniformResourceMarker.java:53) com.aptana.core.resources.MarkerUtils.deleteMarkers(MarkerUtils.java:95) com.aptana.editor.php.internal.core.builder.BuildProblemReporter.updateMarkers(BuildProblemReporter.java:128) com.aptana.editor.php.internal.core.builder.BuildProblemReporter.access$0(BuildProblemReporter.java:99) com.aptana.editor.php.internal.core.builder.BuildProblemReporter$1.run(BuildProblemReporter.java:84) org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) com.aptana.editor.php.internal.core.builder.BuildProblemReporter.flush(BuildProblemReporter.java:89) org2.eclipse.php.internal.core.ast.nodes.AST.flushErrors(AST.java:244) com.aptana.editor.php.internal.parser.PHPParser.parse(PHPParser.java:153) com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:286) com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:244) com.aptana.editor.php.internal.ui.editor.PHPSourceEditor.getAST(PHPSourceEditor.java:178) com.aptana.editor.common.AbstractThemeableEditor$3.run(AbstractThemeableEditor.java:1256) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) {code}13
488APSTUD-4729CoreException: Opening file for read failedUnfortunately no repo case. At the very least, we should write out: [ERROR] Unable to read from file {0}. Connection timed out. We should write out a similar message if writing to a file fails. {code} !ENTRY com.aptana.ui 4 0 2012-04-19 11:58:57.804 !MESSAGE !STACK 1 org.eclipse.core.runtime.CoreException: Opening file for read failed com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.readFile(FTPConnectionFileManager.java:809) com.aptana.core.io.vfs.BaseConnectionFileManager.openInputStream(BaseConnectionFileManager.java:215) com.aptana.core.io.efs.VirtualFile.openInputStream(VirtualFile.java:135) com.aptana.core.io.efs.SyncUtils.copy(SyncUtils.java:85) com.aptana.ide.ui.io.internal.UniformFileStoreEditorInputFactory.toLocalFileStore(UniformFileStoreEditorInputFactory.java:109) com.aptana.ide.ui.io.internal.UniformFileStoreEditorInputFactory.getUniformEditorInput(UniformFileStoreEditorInputFactory.java:68) com.aptana.ide.ui.io.navigator.actions.EditorUtils$1.run(EditorUtils.java:69) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.net.SocketTimeoutException: connect timed out java.net.PlainSocketImpl.socketConnect(Native Method) java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) java.net.Socket.connect(Socket.java:529) com.enterprisedt.util.proxy.PlainSocket.createPlainSocket(PlainSocket.java:112) com.enterprisedt.util.proxy.StreamSocketFactory.getConnectedSocket(StreamSocketFactory.java:60) com.enterprisedt.net.ftp.pro.ProFTPClient.connect(ProFTPClient.java:195) com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.connectFTPClient(FTPConnectionFileManager.java:143) com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.initAndAuthFTPClient(FTPConnectionFileManager.java:158) com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.readFile(FTPConnectionFileManager.java:782) ... 7 more !SUBENTRY 1 com.aptana.filesystem.ftp 4 0 2012-04-19 11:58:57.805 !MESSAGE Opening file for read failed !STACK 0 java.net.SocketTimeoutException: connect timed out java.net.PlainSocketImpl.socketConnect(Native Method) java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) java.net.Socket.connect(Socket.java:529) com.enterprisedt.util.proxy.PlainSocket.createPlainSocket(PlainSocket.java:112) com.enterprisedt.util.proxy.StreamSocketFactory.getConnectedSocket(StreamSocketFactory.java:60) com.enterprisedt.net.ftp.pro.ProFTPClient.connect(ProFTPClient.java:195) com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.connectFTPClient(FTPConnectionFileManager.java:143) com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.initAndAuthFTPClient(FTPConnectionFileManager.java:158) com.aptana.filesystem.ftp.internal.FTPConnectionFileManager.readFile(FTPConnectionFileManager.java:782) com.aptana.core.io.vfs.BaseConnectionFileManager.openInputStream(BaseConnectionFileManager.java:215) com.aptana.core.io.efs.VirtualFile.openInputStream(VirtualFile.java:135) com.aptana.core.io.efs.SyncUtils.copy(SyncUtils.java:85) com.aptana.ide.ui.io.internal.UniformFileStoreEditorInputFactory.toLocalFileStore(UniformFileStoreEditorInputFactory.java:109) com.aptana.ide.ui.io.internal.UniformFileStoreEditorInputFactory.getUniformEditorInput(UniformFileStoreEditorInputFactory.java:68) com.aptana.ide.ui.io.navigator.actions.EditorUtils$1.run(EditorUtils.java:69) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
489APSTUD-4730Aptana ignores changes in .gitignore files.Aptana ignores changes in .gitignore file. If I add names of changed files to .gitignore, aptana still markes them as dirty. Workspace refresh doesn't help. The only thing that helps is to stage files and then unstage them. PS: Not sure, but as i remember this happens on Mac too.8
490APSTUD-4731Files outside of projects do not get validated by jsLintSince the last update to 2.0.1.201204132053-13042012205605, js files that are opened - and are not part of a Titanium project - do not get validated by jsLint. If you open a js file that is in a project and make an error, the error appears straight away. The same is not true for files outside projects, they don't get validated at all. h3. To Test # Create a new JS file on your desktop. Ensure that JSLint validation is on in preferences # Add the following content: \\ {code} function test1() { var a = 0; var b = null; var a = null; } {code} # Drag the file from the desktop into the editor area of Studio to open it (or open it via the File menu or Local Filesystem node) # In 3.0.9, you will be warned about the duplicate assignment of a. In 3.1.1, the validation doesn't happen.13
491APSTUD-4732Add support for @-moz-document to the CSS outlineCreate a new CSS file and use the following content: {code} @-moz-document url-prefix() { .g-section { overflow: hidden; } } {code} Open the outline view and you will see an entry for @-moz-document. This is a new node type and as such, it does not have an icon. We also probably want to show only "@-moz-document" as the label. It looks like the children may need icons as well8
492APSTUD-4733Add support for formatting of @-moz-document in CSSCreate a new empty CSS file and add the following content: {code} @-moz-document url-prefix() { .g-section { overflow: hidden; } } {code} Format the file. This results in: {code} @-moz-document url-prefix() { .g-section { overflow: hidden; } } {code} @-moz-document is a new node type (as well as CSSList). The formatter will need to support these nodes types as well.8
493APSTUD-4734Task markers should be recognized on word boundaries onlyIt looks like our current task detection mechanism looks for raw strings instead of looking for words. For example, if I have the following in a JS file: {code:js} // TODOC: document this var xyz = 10; {code} We show a TODO task for that comment. I verified in JDT and they recognize whole words. We should do the same.3
494APSTUD-4737Building workspace hangs forever on file saveAfter updating to Aptana Studio 3, build: 3.1.1.201204131931, I immediately started experiencing the issue where "Building workspace" would hang forever upon each file save. A particular file I was editing was a PHP file (.php) and/or a PHP template file (.tpl). Unfortunately, before "Building workspace" operation is completed, I am not able to save the file. Since the mentioned operation never completes, the files in the Editor will never get saved. I've checked "[x] Save automatically before build" in Workspace preferences, and it lets me save the file first time, but consequent saves fail since the "Building workspace" operation occurs right after file save and is stuck indefinitely. Attached is the screens shot demonstrating the issue.8
495APSTUD-4738PHP constants defined in define() statements outside of a class, but included, cannot be CTRL-clicked to locate the source of the definitionI used to work with Zend Studio where it was possible to go to the definition for constants using hyper-linking "ctrl+click" (as for functions, vars, etc.) I switched to Aptana studio 3.0 and customized my way well except on this point. Does anyone knows if it's possible to manage PHP constants in Aptana the same way as with Zend Studio? Originally from StackOverflow: http://stackoverflow.com/questions/8658594/move-to-the-definition-for-php-constants-in-aptana Steps to reproduce: 1. Create two php files in the same PHP project: {code} File a.php: <?php class TestClass { const TEST_CONST1 = 0; const TEST_CONST2 = -1; const TEST_CONST3 = 5; const TEST_CONST4 = -5; } File b.php: <?php TestClass::TEST_CONST1; {code} 2. Hold Ctrl and hovering over the TEST_CONST1 in b.php. 3. Click link. Actual result: No link appears. Expected Result: Clicking that link opens a.php on line 3.8
496APSTUD-4743Autosync does not sync deleted filesI have setup an autosync with sftp for deployment and it works. * If I create a file / folder locally, it creates the file/folder on the remote system as well. * If I delete the file, it does not get deleted on the server.8
497APSTUD-4745Improve behavior for validating JIRA loginWhen validating the user's credentials for the JIRA login, clicking Validate behaves a little odd: the Validate button stays blue, and then a couple seconds later we get a beach ball. * Maybe we need to run the process outside the UI and then react when we get the result? * Also, the error message when it fails is a little obtuse since it shows the exception name - we can probably handle the specific case of bad credentials with a custom message? * Once we've validated the user's information, we should remove the username/password field8
498APSTUD-4746Update find toolbar to reflect new layout and add resize supportThe layout of the actions needs to be updated to reflect the spec: https://wiki.appcelerator.org/display/guides2/Multiline+Search+and+Replace The height of the toolbar needs to be adjustable13
499APSTUD-4747Add history support to the find barAdd a dropdown menu action for both the find and replace multi-line text boxes. The items in the dropdown will be the last 5 used text values. Upon selecting a value, it is used to replace the contents in the corresponding text box13
500APSTUD-4748Add Search scope action to find toolbarSearch action has a drop-down menu that specifies the scope of the search. If the scope is anything other than 'current file', then it will trigger a search. This provides a quick way of executing a search across multiple files. The items in the drop-down are as follows: Search current file - current file Search Open Files - search opened editors Search Enclosing Project - search across the project that contains the targeted file Search Workspace - search the entire workspace New icons is also needed for the scopes: Current file (file icon) Open files (multiple file icon) Enclosing project (project icon) Workspace (Globe icon)13
501APSTUD-4749Add multi-line support to find text boxesUpdate the find toolbar UI to include multi-line text boxes. Update the text box to insert new line characters when CTRL+ENTER is entered5
502APSTUD-4750Perform multi-line find when enter/find is issuedWhen performing the search, convert new lines and spaces into an appropriate regular expression and perform the search5
503APSTUD-4752Intermittent "squiggly" artifacts from removed warnings/errors in syntax coloringAfter the changes from APSTUD-4684, there are sometimes leftover single character "squiggly" artifacts from old errors/warnings. I was unable to reproduce under a debugger, and this only happens intermittently for me. It appears to possibly be a timing issue.5
504APSTUD-4753Create multi-line search tabAdd a tab to the search dialog that performs multi-line searches13
505APSTUD-4754Add multi-line text boxes and search historyNULL8
506APSTUD-4755Add "Opened Editors" scope to the search pageNULL8
507APSTUD-4756Unable to reliably disable syntax validation# Ensure Preferences > Studio > Validation > CSS > CSS Syntax Validation is on # Open a new CSS file # Paste in "body {" # It should show as a syntax error # Go to preferences, and turn off syntax validation Note that the error above persists. You can do the same thing inside JavaScript. Note that I was able to turn off validation, restart Studio, edit the CSS file and save it, and the error went away...so somehow validation can be turned off.13
508APSTUD-4757Add support for specific not() syntax in CSSFrom normalize.css (https://raw.github.com/necolas/normalize.css/master/normalize.css) It appears there are at least two syntaxes we don't currently support, but should: {code} audio:not([controls]) { display: none; height: 0; } svg:not(:root) { overflow: hidden; } {code} Both return "unexpected token ':'" (or '[')13
509APSTUD-4758Improve header and add icon for JIRA ticket submissionAs seen in attached image, when submitting a ticket, it's not clear what the user is actually being asked to do # Get some sort of wizard image # Submit a ticket to Appcelerator # Add the text at the top: "We encourage you to file issues or enhancements into Appcelerator's issue tracker. Please fill out as much information below as possible to allow us to better assist you." # Don't start validation until the user has actually typed something # If it's a bug, they need to specify severity # Once a bug has been filed, do we open the bug in a browser? How can they go amend their description? ---- No. 5 is updated to allowing user to specify priority instead.8
510APSTUD-4762java.lang.IllegalArgumentException: Index out of bounds in LineBackgroundPainter.paint()Found in a log file: {code} !ENTRY com.aptana.editor.common 4 0 2012-04-21 11:39:45.488 !MESSAGE (Build 3.0.3.1333576469) [ERROR] Index out of bounds !STACK 0 java.lang.IllegalArgumentException: Index out of bounds org.eclipse.swt.SWT.error(SWT.java:4263) org.eclipse.swt.SWT.error(SWT.java:4197) org.eclipse.swt.SWT.error(SWT.java:4168) org.eclipse.swt.custom.StyledText.getOffsetAtLine(StyledText.java:4346) org.eclipse.jface.text.JFaceTextUtil.getPartialTopIndex(JFaceTextUtil.java:103) org.eclipse.jface.text.source.OverviewRuler$WidgetInfos.<init>(OverviewRuler.java:356) org.eclipse.jface.text.source.OverviewRuler.doPaint(OverviewRuler.java:753) org.eclipse.jface.text.source.OverviewRuler.doubleBufferPaint(OverviewRuler.java:669) org.eclipse.jface.text.source.OverviewRuler.redraw(OverviewRuler.java:890) org.eclipse.jface.text.source.OverviewRuler.access$2(OverviewRuler.java:880) org.eclipse.jface.text.source.OverviewRuler$InternalListener.textChanged(OverviewRuler.java:81) org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2824) org.eclipse.jface.text.TextViewer.invalidateTextPresentation(TextViewer.java:3467) com.aptana.editor.common.extensions.LineBackgroundPainter.paint(LineBackgroundPainter.java:137) org.eclipse.jface.text.PaintManager.paint(PaintManager.java:298) org.eclipse.jface.text.PaintManager.selectionChanged(PaintManager.java:337) org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:164) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:162) org.eclipse.jface.text.TextViewer.fireSelectionChanged(TextViewer.java:2732) org.eclipse.jface.text.TextViewer.selectionChanged(TextViewer.java:2711) org.eclipse.jface.text.TextViewer$4.widgetSelected(TextViewer.java:1830) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) org.eclipse.swt.custom.StyledText.sendSelectionEvent(StyledText.java:8035) org.eclipse.swt.custom.StyledText.clearSelection(StyledText.java:1710) org.eclipse.swt.custom.StyledText.setSelection(StyledText.java:9478) org.eclipse.swt.custom.StyledText.updateSelection(StyledText.java:10186) org.eclipse.swt.custom.StyledText.handleTextChanged(StyledText.java:6206) org.eclipse.swt.custom.StyledText$6.textChanged(StyledText.java:5615) org.eclipse.jface.text.DefaultDocumentAdapter.fireTextChanged(DefaultDocumentAdapter.java:347) org.eclipse.jface.text.DefaultDocumentAdapter.documentChanged(DefaultDocumentAdapter.java:291) org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:760) org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736) org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721) org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796) org.eclipse.jface.text.projection.ProjectionDocument.fireDocumentChanged(ProjectionDocument.java:777) org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191) org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) org.eclipse.jface.text.projection.ProjectionDocument.replace(ProjectionDocument.java:629) org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248) org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7180) org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7994) org.eclipse.swt.custom.StyledText.doDelete(StyledText.java:2519) org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:6991) org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1498) org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:128) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:126) org.eclipse.jface.action.Action.runWithEvent(Action.java:498) org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) org.eclipse.ui.internal.keys.OutOfOrderListener.handleEvent(OutOfOrderListener.java:76) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294) org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730) org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3019) org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734) org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743) org.eclipse.swt.widgets.Control.windowProc(Control.java:5016) org.eclipse.swt.widgets.Display.windowProc(Display.java:4408) org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422) org.eclipse.swt.widgets.Display.eventProc(Display.java:1245) org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code}5
511APSTUD-4763Improve handling of "Failed to parse" for ValidationFound in a log file. It appears to happen when a file is edited outside Eclipse, "refreshing workspace" is turned off, and we attempt to build {code} !ENTRY com.aptana.editor.html 4 0 2012-04-19 00:48:26.619 !MESSAGE (Build 3.0.3.1333512634) [ERROR] Failed to parse for HTML Parse Error Validation !STACK 1 org.eclipse.core.internal.resources.ResourceException: Resource is out of sync with the file system: '/Humansoul/prive/contenu/item_rss_plugin.html'. org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:793) org.eclipse.core.internal.resources.File.getContents(File.java:289) org.eclipse.core.internal.resources.File.getContents(File.java:278) com.aptana.index.core.build.BuildContext.openInputStream(BuildContext.java:259) com.aptana.index.core.build.BuildContext.getContents(BuildContext.java:154) com.aptana.editor.html.validator.HTMLParserValidator.buildFile(HTMLParserValidator.java:60) com.aptana.core.internal.build.LazyBuildParticipant.buildFile(LazyBuildParticipant.java:72) com.aptana.core.build.UnifiedBuilder.buildFile(UnifiedBuilder.java:509) com.aptana.core.build.UnifiedBuilder.doBuildFiles(UnifiedBuilder.java:426) com.aptana.core.build.UnifiedBuilder.buildFiles(UnifiedBuilder.java:403) com.aptana.core.build.UnifiedBuilder.incrementalBuild(UnifiedBuilder.java:231) com.aptana.core.build.UnifiedBuilder.build(UnifiedBuilder.java:167) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) !SUBENTRY 1 org.eclipse.core.resources 4 274 2012-04-19 00:48:26.619 !MESSAGE Resource is out of sync with the file system: '/Humansoul/prive/contenu/item_rss_plugin.html'. {code} Suggested approach: # Catch the specific exception # Call refresh of the resource # Try again # If it still fails, alert the user (similar to how search fails) # Write out this message as an [WARNING] to the log8
512APSTUD-4764Publishing project also uploads ignored resourcesPublishing a project also uploads ignores resources h3. Steps to reproduce: # add new php project # add .gitignore file in root of project # rightclick on project > publish > run web deployment wizard # finish web deployment wizard for an FTP server # open preferences > aptana studio > publishing # add ".project" and ".gitignore" to ignore list # press apply # press ok # right-click on project > publish > upload And both .project and .gitignore files are uploaded to server. I have also tried closing project and closing aptana after updating preferences. 8
513APSTUD-4765Ruby auto 'end' insertion no longer working?The ruby live formatter/code-injection no longer seems to work in Aptana Studio 3.1. In previous versions typing {code} def foo {code} and hitting return would auto inject: {code} def foo <-- new indented cursor position end {code} This behavior no longer occurs after upgrading to 3.1 (same issue for if statements, etc). 13
514APSTUD-4767Remove PHP, Ruby, and Python features from the Studio umbrella feature and buildNULL8
515APSTUD-4768Push PHP, Ruby and Python features to an external update siteNULL13
516APSTUD-4769Add the area for installing PHP, Python, Ruby features to the dashboardNULL13
517APSTUD-4771PHP Outline View should show inherited methods and propertiesWhen working with any existing App or large Framework it's _incredibly_ useful to be able to easily browse/explore all available methods and properties that the current class has access to and to be able to navigate quickly through the hierarchy. Working with something like Magento or anything based on ZF/Cake/Kohana etc means that you almost never create classes from scratch but are always extending someone else's class. While inherited methods/properties are visible in autocomplete they do not show in the Outline view - so finding what's available in a large or an unknown project is a nightmare. In contrast Aptana 1.5 showed all inherited methods/properties in the Outline view - see attached screen shot for an example of using this in a Magento project. I still use Aptana 1.5 as my everyday IDE because the PHP Outline view does such a fantastic job of displaying and filtering through deep object hierarchies, I've tried (and purchased!) every other PHP IDE I can find to get a modern release that can beat it, and nothing can, it really is a killer feature. Netbeans and PhpStorm both to a good job of letting you search for class usage etc but neither aid in exploring the hierarchy as well as the Aptana Outline view used to - please bring it back so I can upgrade to Studio 3! Given that autocomplete already parses the hierarchy and Outline view already shows indented methods with a working filter system, it must be possible to render the hierarchy in Outline view.13
518APSTUD-4774Deadlock in creating new Ruble project# Open Titanium Studio # Create a new Ruby Project, choosing to use the Ruble template. # On "Finish" Studio deadlocks. # No files were created On a subsequent run, I was not able to replicate the issue, so it must be one of timing. {code} Found one Java-level deadlock: ============================= "Worker-25": waiting to lock monitor 0000000001203ebc (object 0000000006e80160, a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), which is held by "ModalContext" "ModalContext": waiting to lock monitor 00000000012034f8 (object 0000000006e80078, a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), which is held by "Worker-25" Java stack information for the threads listed above: =================================================== "Worker-25": org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoadedClass(ClasspathManager.java:477) - waiting to lock <0000000006e80160> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:456) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) com.aptana.editor.css.preferences.PreferenceInitializer.initializeDefaultPreferences(PreferenceInitializer.java:48) org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:281) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer(PreferenceServiceRegistryHelper.java:284) org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults(PreferenceServiceRegistryHelper.java:130) org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults(PreferencesService.java:368) org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults(DefaultPreferences.java:166) org.eclipse.core.internal.preferences.DefaultPreferences.load(DefaultPreferences.java:237) org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:387) org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:631) org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:757) org.eclipse.core.internal.preferences.PreferencesService$5.run(PreferencesService.java:623) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.preferences.PreferencesService.getNodes(PreferencesService.java:607) org.eclipse.core.internal.preferences.PreferencesService.getDouble(PreferencesService.java:531) com.aptana.editor.common.contentassist.MetadataLoader.versionChanged(MetadataLoader.java:251) com.aptana.editor.common.contentassist.MetadataLoader.run(MetadataLoader.java:182) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) "ModalContext": org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoadedClass(ClasspathManager.java:477) - waiting to lock <0000000006e80078> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:456) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.loader.buddy.RegisteredPolicy.loadClass(RegisteredPolicy.java:79) org.eclipse.osgi.internal.loader.buddy.PolicyHandler.doBuddyClassLoading(PolicyHandler.java:135) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) org.apache.velocity.runtime.log.CommonsLogLogChute.init(CommonsLogLogChute.java:75) org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157) org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255) org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795) org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250) - locked <0000000006e828d8> (a org.apache.velocity.runtime.RuntimeInstance) org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:114) - locked <000000004a5de5e8> (a java.lang.Class for org.apache.velocity.runtime.RuntimeSingleton) org.apache.velocity.app.Velocity.init(Velocity.java:79) com.aptana.projects.internal.wizards.AbstractNewProjectWizard.applyTemplateVariables(AbstractNewProjectWizard.java:781) com.aptana.projects.internal.wizards.AbstractNewProjectWizard.getInputStream(AbstractNewProjectWizard.java:736) com.aptana.projects.internal.wizards.AbstractNewProjectWizard.extractZip(AbstractNewProjectWizard.java:621) com.aptana.projects.internal.wizards.AbstractNewProjectWizard.extractZip(AbstractNewProjectWizard.java:538) com.aptana.projects.internal.wizards.AbstractNewProjectWizard.createNewProject(AbstractNewProjectWizard.java:426) com.aptana.projects.internal.wizards.AbstractNewProjectWizard$1.run(AbstractNewProjectWizard.java:256) org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) {code} 13
519APSTUD-4775Commenting lines with Ctrl+/ removes carriage return in line breaksWhen commenting a series of lines with Ctrl+/ the editor uses Linux line breaks regardless of the style of line breaks chosen for the rest of the file or the default configuration. Steps to reproduce: 1. Turn Whitespace characters on (Prefences > General > Editors > Text Editors > Whitespace) 2. Create a file that uses carrage returns in it's line breaks. 3. Type some text with a few line breaks 4. Comment them with the keyboard shortcut (ctrl/cmd + /) Expected results: The lines should comment without changing the line returns Actual results: The line terminators change to Linux style regardless of setting.5
520APSTUD-4776JavaScript: Outline view does not descend into conditionalsAptana Studio 3, build: 3.2.0.201204291023 The outline view doesn't display functions defined inside conditionals: {code} var AIRLINE_TAX_SPACE; if( typeof Financial != 'function') { function Financial() { function displayField(labelField, labelSeparator, field, isBold) { /// some code } function displayProfile(labelProfile, labelSeparator, profile, isBold) { /// some code } } } // SINGLETON Financial.instance = null; Financial.getInstance = function() { if(this.instance === null) { this.instance = new Financial(); } return this.instance; }; // END OF SINGLETON {code}8
521APSTUD-4777"up" button is not workingThe "up" button in the remote explorer is not working. You only can use the "back to workspace" button.8
522APSTUD-4778When shutting down Aptana Studio, it entered in a halt condition on LRUCache.flush()When shutting down Studio (on Windows), I noticed that it appears that the Aptana Studio process kept running and needed to be terminated manually.13
523APSTUD-4782Changing Theme in Aptana Studio 3 makes selection color / colour opaque - code/text can not be read / seenChanging Theme in Aptana Studio 3 via round color/colour wheel with drop down button makes selection color / colour opaque, i.e. looses transparency. Selected code/text can not be read / seen. Quitting out of Aptana Studio 3 and then re-loading fixed problem. See attachment from head of a python script after changing theme5
524APSTUD-4783Using Pydev Dark theme switching between different file types changes colors / coloursSelected "Pydev Dark" theme, have a *py file open, file looks fine. Open a *.txt file, which looks ok then switch to the tab for the python file and the display is messed up. See attached screen shot, note the background is grey/gray where there is no text. Problem does NOT occur with Aptana Studio theme (I think this is the default?) - NOTE have to quit out an restart to "fix" display, see APSTUD-478213
525APSTUD-4786Publish Studio Javadocs as part of nightly buildsWe are now generating Javadocs for the Studio and Titanium core plugins as part of our continuous 'release' builds. We should publish the latest versions out for nightlies. The docs live in the build-artifacts/docs folders of the studio3-core-release and titanium-core-release builds.13
526APSTUD-4787Document Jflex scanner architecture* Discuss the general structure of the jflex files we have. I think someone familiar with regular expressions could pick up jflex really quickly and this could be a good head start for them * Briefly describe the process of generating a scanner from a jflex file. This is how you run it from the command-line or within Eclipse to generate the associated Java file. * Discuss how jflex scanners are modified to work with Beaver8
527APSTUD-4788Document Beaver parser architecture* Discuss the general structure of the Beaver files we have. * Briefly describe the process of generating a parser from a Beaver grammar. This is how you run it from the command-line or within Eclipse to generate the associated files. 8
528APSTUD-4789Document additional facets of the scripting architectureWe may have documentation on this already, but the most complicated area in the current implementation revolves around visibility events. These events are driven by changes in visibility of commands and such based on bundle precedence rules. * We may want to consider removing all notions of augmentation, which would simplify this area a bit * Discuss how "inputs" and "outputs" should be pulled out into extensions to ** Improve code ** Allow other input/output types to be contributed * Discuss a possible way to fix bundle loading issues we've seen on Windows. ** We need to be able to lock the loading of a bundle until its bundle.rb has been processed. This sounds easy, but I think it will have a big impact on the code, unfortunately13
529APSTUD-4790Document the JSCA processing architectureWe had tried to come up with a system for JSCA that was comparable to how our XML metadata works: SAX-like parsing and event driven handlers. However, the result is much too complicated and harder to maintain than it should be. It's worth documenting how the handler works at a minimum. Additionally, it might be good to discuss an alternate approach, that, although tied directly to the JSCA structure, is easier to maintain and update.13
530APSTUD-4791Document the JavaScript inferencing architecture* Discuss the classes involved and their roles * Discuss the hacks put in place to get around issues exposed by jquery-style functions * Discuss possibilities for reducing indexing time (particularly not doing any reads during writes) * Discuss why the "Function<>" wrapper is bad and how it might be removed. This relates to the "hacks" mentioned above * Discuss the differences in handling of sdocml files during metadata loading versus during indexing. Ideally, these should be treated in the same way.20
531APSTUD-4792Document the content assist architecture* Briefly discuss the notion of "location type" and how that is calculated in HTML, CSS, and JS * Briefly discuss the notion of "replacement range" and how that is calculated in HTML, CSS, and JS * Briefly discuss how JS and CSS CA are hacked into HTML13
532APSTUD-4793Document how we do JavaScript parsing* Discuss the recovery strategy interface used by JSParser. Note that these types of recoveries have been exposed in such a way as to make them available to all languages that use Beaver * Show examples of how discovery strategies are defined ** Discuss rules based on the last good token ** Discuss rules based on the current failed token * Suggest how the parser can stand alone and be integrated into the IDE. The current stand alone version of JSParser was a quick-and-dirty extraction from Eclipse purely to allow Bryan to start working with it to see if it will work for his needs.13
533APSTUD-4794Document current and proposed approaches in the JavaScript Outline ViewWe have talked about having different outlines for JS. It may be that the current outline and the JS node in the Index View will cover this topic already, but it's probably worth capturing thoughts here to see how those fit with what we have already.13
534APSTUD-4795Document project build path architecture* We may want to discuss how items in project build paths should be handled * Ideally, each library is indexed only once regardless of how many projects reference it * Metadata should be handled with the same system ** This may allow metadata files to auto-update on changes instead of relying on the JS index version number we maintain manually right now ** Then again, changes to the structure of the index content will still require a version number change13
535APSTUD-4797PHP Autocomplete throws an NPE and shows error dialogTrying to resolve APSTUD-190, I copied the original (incorrect) block from the description into a php file and tried to invoke content assist after "parent::". I get an error dialog complaining of an NPE. Here's the stack trace from the log: {code} !ENTRY org.eclipse.ui 4 4 2012-05-08 15:33:42.293 !MESSAGE "Content Assist" did not complete normally. Please see the log for more information. !ENTRY org.eclipse.ui 4 0 2012-05-08 15:33:42.294 !MESSAGE java.lang.NullPointerException !STACK 0 java.lang.NullPointerException com.aptana.editor.php.internal.indexer.UnpackedElementIndex.getEntries(UnpackedElementIndex.java:390) com.aptana.editor.php.internal.indexer.ModuleSubstitutionIndex.getEntries(ModuleSubstitutionIndex.java:64) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.getClassEntries(PHPContentAssistProcessor.java:1209) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.computeStaticDereferenceLeftEntries(PHPContentAssistProcessor.java:1121) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.computeStaticDereferenceEntries(PHPContentAssistProcessor.java:822) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.dereferencingStaticCompletion(PHPContentAssistProcessor.java:772) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.computeCompletionProposalInternal(PHPContentAssistProcessor.java:555) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.computeCompletionProposals(PHPContentAssistProcessor.java:485) com.aptana.editor.php.internal.contentAssist.PHPContentAssistProcessor.computeCompletionProposals(PHPContentAssistProcessor.java:306) com.aptana.editor.common.CommonContentAssistProcessor.doComputeCompletionProposals(CommonContentAssistProcessor.java:500) com.aptana.editor.common.CommonContentAssistProcessor.computeCompletionProposals(CommonContentAssistProcessor.java:417) com.aptana.editor.common.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:2221) com.aptana.editor.common.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:394) com.aptana.editor.common.contentassist.CompletionProposalPopup.access$7(CompletionProposalPopup.java:388) com.aptana.editor.common.contentassist.CompletionProposalPopup$1.run(CompletionProposalPopup.java:331) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) com.aptana.editor.common.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:325) com.aptana.editor.common.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:2008) org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:930) org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1535) org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80) org.eclipse.jface.action.Action.runWithEvent(Action.java:498) org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.filterEvent(Display.java:1069) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4127) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1494) org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1490) org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:493) org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:1060) org.eclipse.swt.widgets.Display.windowProc(Display.java:5563) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:68) org.eclipse.swt.widgets.Composite.keyDown(Composite.java:587) org.eclipse.swt.widgets.Display.windowProc(Display.java:5473) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220) org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2095) org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2253) org.eclipse.swt.widgets.Display.windowProc(Display.java:5535) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4989) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5138) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) {code}3
536APSTUD-4798Add portal controller to switch themesRegarding TISTUD-1634, we want the user to be able to switch Studio to a specific theme. Add a controller that takes in a theme name and performs the switch. We may be able to use the existing "command" controller for this.5
537APSTUD-4799Add portal controller to switch perspectiveRegarding TISTUD-1634, we want the user to be able to switch Studio to a specific perspective. Add a controller that takes in a perspective ID and performs the switch. We may be able to use the existing "command" controller for this.5
538APSTUD-4800Improve current dashboard project controller to return name of created projectWhen a user creates a project from the dashboard, it pops up the New Project wizard. At the end of that wizard, we need to return the name of the created project back top the dashboard. We need to provide a callback mechanism to the dashboard that returns that project name.8
539APSTUD-4801Add portal controller to run a launch configuration for a particular projectRelated to APSTUD-4800, once we have the name of a project, we need to "run" it. In this case, we'll have a project name and an action ("run") in this case. The project may not yet have a launch configuration. In the most basic example, we'd run a new Mobile Web project in the browser. However, we need to do some specification on which actual action we are activating. Perhaps we can do it based on the IDs of the items in the menu.13
540APSTUD-4804Establishing FTP connection failed: Read timed out Read timed outPeriodically, after a number of successful FTP transfers to any host server, the FTP connection will fail with the following Error message: Failed to upload file Establishing FTP connection failed: Read timed out Read timed out Every attempt at this will fail for the next 20 minutes or so. This happens on every server at some point, and when this happens to Aptana I can connect using FileZilla or Dreamweaver and successfully FTP the same file. The problem will fix itself automatically in about 20 minutes, possibly when the FTP connection has automatically timed out from the server. Restarting Aptana does not fix the problem. After time I can resume FTP normally but much time is lost waiting for these FTP errors to subside. This problem happens at least two or three times every day throughout my day. It happens even more so when I'm handling a lot of remote files. Restarting my computer seems to work, but this happens so frequently I can't afford to restart my computer every time this happens.13
541APSTUD-4808GIT wants to commit unchanged files on OSXAfter closing a project and opening it up again later, GIT marks seemingly random files as being changed and then wants to commit them. I am 100% positive I did not change these files. It happens on multiple projects. In the example I show a screenshot of files in a Typo3 project, though this happens on other (non-typo3) projects as well. I never had this issue with other eclipse GIT plugins on comparable code. Included is a screenshot of the commit window, which seems to detect no difference in file content.8
542APSTUD-4810Scripting keybindings don't work in Eclipse 4.2In doing testing locally, the scripting bindings don't appear to work at all under Eclipse 4.2. I did some quick debugging, and it just seems like we don't get called back on our listener.40
543APSTUD-4815Add Search in Selection optionThe find bar does not currently support a search in selection option. Comparing to other IDEs, this is a standard feature.13
544APSTUD-4819High CPU while working on a HTML + PHP fileI've just shared some tweets with @bingomar (Ingo Muschenetz) and he told me to attach this file (.html with PHP code inside) because when opening in Aptana Studio 3.1.2 with Mac OS X I get a very high CPU usage and sometimes it makes my system unresponsive. Confirmed also on Win7 64 bits.13
545APSTUD-4821Pasting a file into a project does not ask for confirmation when there is an existing file with the same name# Have two projects with a file name 'a.html' in each. # Copy the file on one project and paste it into the other. Expected: an overwrite confirmation. Result: the file is overwritten without any warning.8
546APSTUD-4823The PHP documentation hover is not displaying docs that were defined in other filesPHPDocs are no longer working from external files. {quote} /** *Documentation for test */ function test($a,$b) { } {quote} If you type "test" on a new line of the same file, you get the auto-completion list with the documentation box showing "Documentation for test", but if you type "test" *on a different file* of the same project, it will say: "No available documentation" 8
547APSTUD-4826GIT: Existing branches are not always shownIf there are too many branches, the Aptana GIT Implementation will not show them. Only the current branch is shown in the list, but all others are not. See attached screenshot.8
548APSTUD-4827Loading a bundle without a config/locales folder logs an error{code} [2012-05-15 16:27:23] An error occurred while executing C:\Users\Christopher Williams\Aptana Rubles\source.ruble\bundle.rb: (Errno::ENOENT) No such file or directory - C:\Users\Christopher Williams\Aptana Rubles\source.ruble/config/locales org.jruby.exceptions.RaiseException: (Errno::ENOENT) No such file or directory - C:\Users\Christopher Williams\Aptana Rubles\source.ruble/config/locales org.jruby.RubyDir.chdir(org/jruby/RubyDir.java:317) Ruble::I18n.load_translations(C:/Users/Christopher Williams/Desktop/Titanium_Studio/configuration/org.eclipse.osgi/bundles/105/1/.cp/framework/ruble/i18n.rb:95) Ruble::I18n.init_translations(C:/Users/Christopher Williams/Desktop/Titanium_Studio/configuration/org.eclipse.osgi/bundles/105/1/.cp/framework/ruble/i18n.rb:88) Ruble::I18n.translate(C:/Users/Christopher Williams/Desktop/Titanium_Studio/configuration/org.eclipse.osgi/bundles/105/1/.cp/framework/ruble/i18n.rb:53) Object.t(C:/Users/Christopher Williams/Desktop/Titanium_Studio/configuration/org.eclipse.osgi/bundles/105/1/.cp/framework/ruble/i18n.rb:129) #<Class:0x100bc30ad>.define_bundle(C:\Users\Christopher Williams\Aptana Rubles\source.ruble\bundle.rb:6) org.jruby.RubyProc.call(org/jruby/RubyProc.java:274) org.jruby.RubyProc.call(org/jruby/RubyProc.java:229) #<Class:0x10096d430>.define_bundle(C:/Users/Christopher Williams/Desktop/Titanium_Studio/configuration/org.eclipse.osgi/bundles/105/1/.cp/framework/ruble/bundle.rb:222) Object.bundle(C:/Users/Christopher Williams/Desktop/Titanium_Studio/configuration/org.eclipse.osgi/bundles/105/1/.cp/framework/ruble/bundle.rb:247) #<Class:0x100bc30ad>.(root)(C:\Users\Christopher Williams\Aptana Rubles\source.ruble\bundle.rb:3) {code}5
549APSTUD-4830Font size changes the when you open up a new fileWhen I open a file, the font size looks 1pt or 2pt smaller than the selected font size. If I then force a refresh, like selecting "block selection mode", everything resets to normal. Both "General -> Appereance -> Colors and Fotns" and "Aptana Studio -> Themes" seems ok, showing the correct font size. Is there another config to look at and try find a font-size mismatch?8
550APSTUD-4832Parentheses in a PHP comment may cause code-formatting failureOnce applied to the file mysql.php [attached below], formatter doesn't do anything. I have also attached my PHP formatter profile file.8
551APSTUD-4834Auto-normalize newlines in Find BarRelated to APSTUD-4750, I tried a multiline search that matched, then I changed the file's line endings from between the settings and also pasted mismatched versions (between editor and find bar) in the find box and was able to get a case where they did not match (I think I searched with the version containing \r line endings and the file/editor had \n endings). Looking at Sublime Text, even if I changed the carriage returns in the file, the text still matched. This should be the default behavior. If a user wishes to override that setting, they can do so by using explicit regular expressions (neither TextMate nor Sublime Text offer a setting for that, so it must not be very important)8
552APSTUD-4835Normalize copyright dates in GPL licenseSee attached image. Note that one GPL license has a 2011 copyright date, and another has a 2012 copyright date. Move all dates to 20125
553APSTUD-4836Unable to construct JS instances from built-in types using the "new" operatorAs seen in https://wiki.appcelerator.org/display/tools/JS+Type+Inferencing+-+Primer the inferencing for instantiating predefined classes seems to be broken when using new. Here are two examples from that page that show as broken: {code:javascript} var constructedArray = new Array; var constructedFunction = new Function; {code}8
554APSTUD-4837Aptana Studio Help loads Titanium Studio pageEither the link is wrong or the Web site is messed up. Repro steps 1. on Aptana Studio 3 start page, click "Aptana Documentation" (top, center) 2. Web browser opens to "Titanium Studio", which appears to be for mobile development.5
555APSTUD-4838Double quotes in JIRA ticket summary field breaks ticket submission dialogh3. Steps to Reproduce: # Choose Help > Titanium Studio > Submit Ticket... # Add a summary like 'This is a "ticket"' (no single quotes) h3. Actual: The ticket will fail to submit with an error h3. Expected: The ticket submits 3
556APSTUD-4839When submitting a bug via Studio, using invalid credentials results in a successful login messageSteps: 1. Help->Titanium Studio->Submit a ticket... 2. In the login, input an email address for the login 3. Input some password 4. Click "Validate" Expected: Error message stating the login failed Actual: Message stating the login was successful8
557APSTUD-4840Still Broken - Refresh using Native Hooks or Polling Can't be Turned off (reappears after reboot of machine)This is a clone of bug APSTUD 4661 as I made the following comment on it, but I guess because that bug was deemed fixed, the comment went unnoticed. I've included the previous bug description after the new additional problem description. The previous bug was not correctly fixed and the following describes the remaining, rather peculiar, issue. I've upgraded to Aptana Studio 3, build: 3.1.2.201205041324 and have tested the following on Mageia 1.x and Ubuntu 12.04. If I turn off the Refresh checkbox, save and view it again it remains off. If I close down Aptana and restart it, the checkbox remains off. If I close Aptana, log out, log back in again, and restart Aptana and view it, it remains off. The same is true if I don't close Aptana before logging out. However, if I reboot my machine, log in and then restart Aptana, it is now back on again. In other words, the setting doesn't seem to survive a reboot. I would guess this hints that the value is somehow being kept in memory and linux is reassigning that portion of memory to Aptana during the restarts of Aptana and even over a log out and log in again. Don't know if that is possible, but I can't imagine why it's misbehaving only on a reboot otherwise. Steps to reproduce: a) log in to either Mageia 1.x, or Ubuntu 12.04 or possibly other variants of linux or other OSes(haven't tested on those) b) start up Aptana and turn OFF the Refresh button c) REBOOT your machine d) log in again and start up Aptana, and view the value. All things going well it's back on again. Who'd have thought one checkbox could be so mysterious!! The original bug description was ... I've just upgraded to the latest aptana release (3.1.1.201204131931) and immediately hitting cpu usage issues with the CPU jumping to 90%ish every few seconds corresponding to a refresh of the workspace every few seconds. So I guess on my system Aptana the option 'Refresh using Native hooks or polling' is polling rather than hooks as it happens regardless of whether or not I'm doing anything. I've traced it down to the 'Refresh using Native Hooks or Polling' which is under the Workspace menu. If I turn it off, the system quietens down and all is fine. However, on a restart, this 'option' has reselected itself meaning (I guess) that the option is not reading it's setting correctly from the options saved (or perhaps isn't getting saved to the file?) So the bug I'm reporting here is the preference can't be set beyond a restart and, of course, like all preferences it should be. A second bug I guess is quite why the refresh of the workspace uses so much CPU - my system has 8000 files on a fairly old machine so I'm guessing it's hitting limits on my machine (results will of course vary on other machines). I've commented on that before (in the forums) and it was all fine in version 3 until now. I'll repeat my guess that there is a very inefficient method involved in the refresh of the workspace that still hasn't been resolved. Anyway - hopefully to replicate ... Type Workspace in to the preferences and select Workspaces at the bottom to get the "Refresh ... " option. Unselect it. Restart the studio, go back to that preference and you'll (hopefully) see it selected again. I've attached two images - the first when I deselected the option. The second when I restarted showing the option has been selected again.8
558APSTUD-4841When logging into JIRA, severity combo box is not disabledSteps: 1. Help->Titanium Studio->Submit a ticket... 2. Enter JIRA credentials 3. Click validate Expected: All controls are disabled during the operation Actual: The severity combo is enabled3
559APSTUD-4842Investigate JS Warnings from JSLint||Id||Description||Details||JSLint Option||JSHint Option|| |a_label|'\{a\}' is a statement label.| Looks for references to label identifiers in code (not as break/continue jumps). | | | |a_not_allowed|'\{a\}' is not allowed.| {color:red}Appears to be unused.{color} | | | |a_not_defined | '\{a\}' is not defined. | {color:red}Appears to be unused.{color} | | | |{color:green}a_scope{color} | '\{a\}' used out of scope. | {color:red}Unable to trigger, even with example at http://stackoverflow.com/questions/2485171/jslint-out-of-scope-error{color} | | funscope | |{color:green}already_defined{color} | '\{a\}' is already defined. | Looks for variables defined multiple times (not in global scope). | | shadow | |and | The '&&' subexpression should be wrapped in parens. | Looks for && inside \|\| expression. Warning. | |assign_exception | Do not assign to the exception parameter. | Looks for assignment to errors in catch blocks. Warning. | |{color:green}assignment_function_expression{color} | Expected an assignment or function call and instead saw an expression. | Looks for statements without any assignment or function call - which indicates unused code. (say 1+2;) | | expr | |{color:green}avoid_a{color} | Avoid '\{a\}'. | Looks for calls to 'arguments.callee' and 'arguments.caller'. Warning. | | noarg | |bad_assignment | Bad assignment. | Checks for assignments to non-identifiers, or to arguments array/object. Warning. | |bad_constructor | Bad constructor. | Looks for construction where an expression is used in place of identifier (like a ternary to choose the function) | | | |bad_in_a | Bad for in variable '\{a\}'. | Looks for non-local vars in for in loops. | | | |bad_invocation | Bad invocation. | Looks for '()' calls with a non-identifer left-hand side (and not '.', '[', '(', '&&', '\|\|', or '?') like "/regexp/(7);'. See https://github.com/douglascrockford/JSLint/blob/master/jslint.js#L3599 | | | |bad_new | Do not use 'new' for side effects. | Looks for new Foo() without assignment. | | | |bad_number | Bad number '\{a\}'. | Looks for numbers outside the allowable range of -1.7976931348623157e+308 to 1.7976931348623157e+308 (Number.MAX_VALUE). Warning. | |{color:green}bad_operand{color} | Bad operand. | Looks for ++ and -- operands with non-identifier first tokens (i.e. '!foo++') | plusplus | plusplus | |{color:green}bad_wrap{color} | Do not wrap function literals in parens unless they are to be immediately invoked. | Checks for functions wrapped in parens that are not immediately invoked (followed by paren pair). | | immed | |combine_var | Combine this with the previous 'var' statement. | Looks for variable declarations on separate lines/statements that can be combined. | | vars | |{color:green}conditional_assignment{color} | Expected a conditional expression and instead saw an assignment. | Looks for assignments inside if/switch/while/do-while/for(second statement)/left-side of ternary/either side of \|\| and && | | boss | |confusing_a | Confusing use of '\{a\}'. | Looks for use of '+++', '---' and specific cases of '!' negation. | | | |confusing_regexp | Confusing regular expression. | Looks for '/' or '*' at end of regexp. (i.e. '/regexp//') | | | |{color:green}constructor_name_a{color} | A constructor name '\{a\}' should start with an uppercase letter. | Looks for calls to 'new something()' where 'something' is just a lowercase identifier. Warning. | newcap | newcap | |control_a | Unexpected control character '\{a\}'. | checks for control characters in strings (checks if character is less than ' ') | |{color:green}dangling_a{color} | Unexpected dangling '_' in '\{a\}'. | if 'nomen' option is false (default is true) and identifier starts or ends with '_' character | | proto | |dangerous_comment | Dangerous comment. | Looks for comments with content matching /@cc\|<\/?\|script\|\]\s*\]\|<\s*!\|&lt/i | safe | | |deleted | Only properties should be deleted. | Looks for delete keyword before identifiers to ensure it's a property using '.' or '[' access. Warning. | |duplicate_a | Duplicate '\{a\}'. | Looks for duplicate case, duplicate ES5 getter/setter, duplicate JSON property string. | | | |{color:green}empty_block{color} | Empty block. | Looks for blocks with no code (for/if/else/catch/function/etc) | | noempty | |empty_case | Empty case. | Looks for empty case blocks in switch statements. Warning. | | | |empty_class | Empty class. | Looks for an empty '[]' inside a regexp. Warning. | | | |{color:green}es5{color} | This is an ES5 feature. | Looks for ES5 getters, or line continuations inside strings (\ before EOL in middle of string). | es5 | es5 |{color:green}evil{color} | eval is evil. | Looks for calls to 'eval' or 'execScript' (globally, on object, on object using [] notation) if 'evil' option is false. Warning. | evil | evil | |{color:green}expected_a{color} | Expected '\{a\}'. | If in JSON mode and string doesn't use double quotes (expects '"'). ? Also relates to unexpected spaces | white/es5 | trailing | |expected_identifier_a | Expected an identifier and instead saw '\{a\}'. | Looks for missing identifiers (say in var decls) | | | |{color:green}expected_identifier_a_reserved{color} | Expected an identifier and instead saw '\{a\}' (a reserved word). | Looks for use of a reserved word in place of an identifier (say in var names or function names) | es5 | esnext | |expected_number_a | Expected a number and instead saw '\{a\}'. | Looks for digits 0-9 inside \{\} counts in regexps. | | | |expected_operator_a | Expected an operator and instead saw '\{a\}'. | {color:red}Unable to reproduce.{color} | | | |{color:green}for_if{color} | The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype. | Looks for for (x in foo) with an if statement in the block. Basically looking for checking properties in objects. | forin | forin | |function_block | Function statements should not be placed in blocks . Use a function expression or move the statement to the top of the outer function. | Looks for functions declared in blocks (for/while/do/else/if/etc). | | | |{color:green}function_eval{color} | The Function constructor is eval. | Looks for calls to Function() constructor if 'evil' option is false. Warning. | evil | evil | |{color:green}function_loop{color} | Don't make functions within a loop. | Looks for functions or get/setters defined inside loops. (function_block is checked first, so to trigger you need to assign function to something so we get "prefix" function rule rather than "statement" function rule). | | loopfunc | |function_statement | Function statements are not invocable . Wrap the whole function invocation in parens. | Looks for parens after function declaration. (self-invoking, but no assignment) | | | |function_strict | Use the function form of 'use strict'. | Looks of ruse of "use strict"; in top-level/global scope, or as part of multiple statements on same line (not the first statement in that list.) | | | |html_confusion_a | HTML confusion in regular expression '<\{a\}'. |Looks for '</' or '<!' in regexps when JS is inside a script tag. | | | |{color:green}implied_evil{color} | Implied eval is evil. Pass a function instead of a string. | Looks for calls to 'setTimeout' or 'setInterval' with string as first arg. Warning. | evil | evil | |infix_in | Unexpected 'in'. Compare with undefined, or use the hasOwnProperty method instead. | Looks for use of 'x in y' outside of forin loops. (i.e. "if (x in y) {}") | | | |{color:green}insecure_a{color} | Insecure '\{a\}'. | Looks for use of '.' or '[^' in regexps. | regexp | regexp | |isNaN | Use the isNaN function to compare with NaN. | Checks left and right hand side of comparators ('==','===','!=','!==','<','>','<=','>=') for 'NaN'. Warning. | |label_a_b | Label '\{a\}' on '\{b\}' statement. | {color:red}Unused.{color} | | | |leading_decimal_a | A leading decimal point can be confused with a dot: '.\{a\}'. | Looks for numbers with leading '.'. Warning. | |missing_use_strict | Missing 'use strict' statement. | Looks for "use strict"; at top of function/try bodies. | | sloppy | |move_invocation | Move the invocation into the parens that contain the function. | Looks for self-invoking function where invocation parens are outside the set of parents wrapping the function declaration. | | | |move_var | Move 'var' declarations to the top of the function. | Looks for var declarations inside 'for' first segment. | | | |name_function | Missing name in function statement. | Looks for 'function ()' (function with no name). Error. | |nested_comment | Nested comment. | Looks for nested '/*' inside multiline comments. | | | |not_a_constructor | Do not use \{a\} as a constructor. | Don't call constructor for 'Number', 'String', 'Boolean', 'Math', 'JSON' | | | |not_a_defined | '\{a\}' has not been fully defined yet. | {color:red}Appears to be unused.{color} | | | |not_a_function | '\{a\}' is not a function. | Looks for calls to Math/JSON as a function. | | | |not_a_label | '\{a\}' is not a label. | Looks for break/continue jumps to labels that don't exist. | | | |{color:green}not_a_scope{color} | '\{a\}' is out of scope. | {color:red}Unable to reproduce.{color} | | funscope | |not_greater | '\{a\}' should not be greater than '\{b\}'. | Looks for use of \{\} counting in regexps with first number greater than second. | |octal_a | Don't use octal: '\{a\}'. Use '\u....' instead. | Looks for escaped 0-6 digit in string (i.e. \0). | | | |parameter_a_get_b | Unexpected parameter '\{a\}' in get \{b\} function. | Looks for ES5 getter with parameters (should have none). | | | |parameter_arguments_a | Do not mutate parameter '\{a\}' when using 'arguments'. | Looks for assignment to any function's params when body refers to arguments array. | | | |parameter_set_a | Expected parameter (value) in set \{a\} function. | Looks for ES5 setter function, ensures it has one parameter with name 'value'. | |radix | Missing radix parameter. | Calls to parseInt with one arg. Warning. | |read_only | Read only. | Looks for assignment to predefined objects like Array or Object. | | | |redefinition_a | Redefinition of '\{a\}'. | {color:red}Appears to be unused{color} | | | |{color:green}reserved_a{color} | Reserved name '\{a\}'. | checks if an identifier token is '\_\_iterator\_\_' or '\_\_proto\_\_'. Error. | | iterator/proto | |slash_equal | A regular expression literal can be confused with '/='. | Looks for '/='. | | | |{color:green}strange_loop{color} | Strange loop. | Checks do, for, while loops for break/return/continue/throw (at top-level of block, not inside condition). Warning. | | curly | |{color:green}strict{color} | Strict violation. | Looks for access to this inside function after "use strict"; or access to arguments in global scope after "use strict";. | strict | strict | |{color:green}subscript{color} | ['\{a\}'] is better written in dot notation. | Checks for [''] notation property access when 'sub' option is false. String must be an identifier and not reserved. Warning. | | sub | |sync_a | Unexpected sync method: '\{a\}'. | Looks for method calls containing 'Sync' in their name if 'stupid' option is false. Warning. | stupid | | |trailing_decimal_a | A trailing decimal point can be confused with a dot: '.\{a\}'. | Checks for numbers ending in '.' character. Warning. | |{color:green}unescaped_a{color} | Unescaped '\{a\}'. | Looks for unescaped '/', '^', [', ']', ')', '(', '+', '-', '*' in regexps | | regexp | |{color:green}unexpected_a{color} | Unexpected '\{a\}'. | if a hex character is {code}i >= 32 && i <= 126 && i !== 34 && i !== 92 && i !== 39{code}. Also, looks for use of ++ and -- if 'plusplus' option is false. {color:red}Is this definition complete? Seems to relate to a number of things{color} | bitwise/plusplus/debug | bitwise/plusplus/debug | |unexpected_property_a | Unexpected /\*property\*/ '\{a\}'. | Looks for assignment/use of a property (in code) that is declared in special properties directive in comments. | | | |unnecessary_initialize | It is not necessary to initialize '\{a\}' to 'undefined'. | Looks for 'var foo = undefined;' statements. | | | |unnecessary_use | Unnecessary 'use strict'. | Looks for multiple "use strict"; in scope. | | | |unreachable_a_b | Unreachable '\{a\}' after '\{b\}'. | Looks for unreachable statements (after break/continue/return) | | | |unsafe | Unsafe character. | Looks for any control character in the source with a match against: {code}/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/{code} | |{color:green}url{color} | JavaScript URL. | Checks string or range tokens, label names, combined 'primitive' strings from '+' concat against regexp: {code}jx = /^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i{code} | | scripturl | |use_array | Use the array literal notation []. | Checks for 'new Array();', 'new Array', and 'string.split(1)'. Warning. | |{color:green}use_braces{color} | Spaces are hard to count. Use \{\{a\}\}. | Checks regexps for continuous spaces and asks user to replace with explicit count of spaces using \{2\} notation. Warning. | | curly | |use_charAt | Use the charAt method. | {color:red}Appears to be unused/unchecked{color} | |use_object | Use the object literal notation \{\}. | Checks for 'new Object()' or 'var foo = Object()'. Warning. | |use_or | Use the \|\| operator. | If a ternary's first and second objects (before and after '?') are 'similar'\*. Warning. | |use_param | Use a named parameter. | Checks for access to 'arguments' array with a number. Warning. | |{color:green}used_before_a{color} | '\{a\}' was used before it was defined. | If 'undef' option is false and if the variable is not in scope, and is not predefined, and if we are not in the global scope, then we have an undefined variable error. Or if a function is called inside another function and has not yet been defined. Warning. | undef | latedef/undef | |var_a_not | Variable \{a\} was not declared correctly. | Checks for broken var assignment (here 'foo') of form {code}var bar = foo = 'something';{code}. Error. | |weird_assignment | Weird assignment. | Checks if left and right of '=' assigment are 'similar\*. Warning | |weird_condition | Weird condition. | Checks if left and right of '\|\|' or '&&' are 'similar\*. Also checks if condition keyword is followed by a non-infix '-'. Lastly checks if condition keyword is followed by '\{' or '(.<number>'. Warning. | |{color:green}weird_new{color} | Weird construction. Delete 'new'. | Checks for 'new function'? Warning. | | supernew | |weird_program | Weird program. | Checks if we've hit a 'disrupting' statement (return/break/continue/throw) at the top-level? Warning. | |weird_relation | Weird relation. | Checks if left and right of comparators are 'similar'\*, or both are either numbers or strings. Checks '==', '===', '===','!=', '!==', '!==', '<', '>', '<=', '>='. Warning. | |weird_ternary | Weird ternary. | If the two values we're choosing between are 'similar'\*. Warning. | |{color:green}wrap_immediate{color} | Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself. | Checks if function is declared and then immediately invoked for it's return value. See http://stackoverflow.com/questions/939386/immediate-function-invocation-syntax. Warning. | | immed | |wrap_regexp | Wrap the /regexp/ literal in parens to disambiguate the slash operator. | Checks for regexp following a 'return' keyword. Warning | |write_is_wrong | document.write can be a form of eval. | If 'evil' option is false and there's a call to 'document.write' or 'document.writeln'. Warning. |40
560APSTUD-4843Investigate CSS Warnings from JSLintCSS Warnings ||Id||Description||Details||JSLint Option||JSHint Option|| |bad_color_a | Bad hex color '\{a\}'. | ? | |bad_style | Bad style. | Looks for border-radius with more than 4 values in CSS. | |bad_url_a | Bad url '\{a\}'. | Looks for matches against /&\|\+\|\u00AD\|\.\.\|\/\*\|%[^;]\|base64\|url\|expression\|data\|mailto\|script/i for url function values. Also checks for mis-matched quotes in URL | |css | A css file should begin with @charset 'UTF-8'; | ? | |expected_at_a | Expected an at-rule, and instead saw @\{a\}. | ? | |expected_attribute_a | Expected an attribute, and instead saw [\{a\}]. | ? | |expected_id_a | Expected an id, and instead saw #\{a\}. | Looks for '#' followed by non-identifiers in CSS selectors. | |expected_class_a | Expected a class, and instead saw \{a\}. | Looks for '.' followed by non-identifiers in CSS selectors. | |expected_fraction_a | Expected a number between 0 and 1 and instead saw '\{a\}' | Looks for fractional 4th arg to CSS rgba() function. | |expected_lang_a | Expected a lang code, and instead saw :\{a\}. | Looks for CSS selector:lang() with no value in parens. | |expected_linear_a | Expected a linear unit and instead saw '\{a\}'. | Looks for CSS lengths that are numbers not followed by a known unit. | |expected_media_a | Expected a CSS media type, and instead saw '\{a\}'. | Expects @media <media> with a known identifer/media type. | |expected_name_a | Expected a name and instead saw '\{a\}'. | ? | |expected_nonstandard_style_attribute | Expected a non-standard style attribute and instead saw '\{a\}'. | ? | |expected_number_a | Expected a number and instead saw '\{a\}'. | Looks for 4 lengths inside rect() function (checks that each is a length - number and unit). | |expected_percent_a | Expected a percentage and instead saw '\{a\}' | Looks for percents over 100 inside rgb() function args. | |expected_positive_a | Expected a positive number and instead saw '\{a\}' | Looks for negative numbers inside CSS rgb/rgba() function. | |expected_pseudo_a | Expected a pseudo, and instead saw :\{a\}. | ? | |expected_selector_a | Expected a CSS selector, and instead saw \{a\}. | ? | |expected_small_a | Expected a small positive integer and instead saw '\{a\}' | Looks for numbers over 255 in CSS colors defined using rgb() function. | |expected_string_a | Expected a string and instead saw \{a\}. | ? | |expected_style_attribute | Excepted a style attribute, and instead saw '\{a\}'. | ? | |expected_style_pattern | Expected a style pattern, and instead saw '\{a\}'. | ? | |expected_tagname_a | Expected a tagName, and instead saw \{a\}. | ? | |missing_url | Missing url. | Looks for no value in url() function. | |not | Nested not. | Checks CSS selector for nested ':not(:not())'. Warning. | |unrecognized_style_attribute_a | Unrecognized style attribute '\{a\}'. | Checks for unknown CSS property names in style attribute value. Warning. |20
561APSTUD-4844Investigate HTML Warnings from JSLintHTML Warnings ||Id||Description||Details||JSLint Option||JSHint Option|| |attribute_case_a | Attribute '\{a\}' not all lower case. | ? | |bad_entity | Bad entity. | ? | |bad_html | Bad HTML string. | ? | |bad_id_a | Bad id: '\{a\}'. | Looks for id attribute values not matching /^[A-Za-z][A-Za-z0-9._:\-]*$/ in HTML | |bad_name_a | Bad name: '\{a\}'. | Checks for non-identifiers following '<tag' or '</' in HTML. Warning. | |bad_type | Bad type. | Looks for unknown type value in input tag. (Looks for 'button', 'checkbox', 'radio', 'reset', 'submit', 'file', 'hidden', 'image', 'password', 'text') | |bad_url_a | Bad url '\{a\}'. | Looks for matches against /&\|\+\|\u00AD\|\.\.\|\/\*\|%[^;]\|base64\|url\|expression\|data\|mailto\|script/i for attributes values of 'href', 'background', 'content', 'data' or names containing 'src' or 'url'. | |duplicate_a | Duplicate '\{a\}'. | Looks for duplicate id values in HTML, duplicate attributes on HTML tag. | |expected_attribute_value_a | Expected an attribute value and instead saw '\{a\}'. | ? | |html_handlers | Avoid HTML event handlers. | Looks for use of "on.*" attributes in HTML elements. | on | | |lang | lang is deprecated. | Looks for use of lang attribute on 'script' tag. | |tag_a_in_b | A '<\{a\}>' must be within '<\{b\}>'. | ? | |unexpected_char_a_b | Unexpected character '\{a\}' in \{b\}. | Matches ids attributes against /[\[\]\/\\"'*<>.&:(){}+=#]/ or class/type/name attributes against /[^a-zA-Z0-9+\-_\/. ]/ | |unrecognized_tag_a | Unrecognized tag '<\{a\}>'. | Unknown HTML tag (See https://github.com/douglascrockford/JSLint/blob/master/jslint.js#L717). Error. |13
562APSTUD-4845Investigate Lexing/Parsing warnings from JSLintThe following are Lexing/Parsing Warnings generated by JSLint. ||Id||Description||Details||JSLint Option||JSHint Option|| |{color:green}expected_a_b{color} | Expected '\{a\}' and instead saw '\{b\}'. | ? see this as relating to braces around for/while loops (line 3003, approx), and eqeq (line 2744) and semicolons (2391) | eqeq/es5 | curly/eqeqeq/asi | |expected_a_b_from_c_d | Expected '\{a\}' to match '\{b\}' from line \{c\} and instead saw '\{d\}'. | ? | |identifier_function | Expected an identifier in an assignment and instead saw a function invocation. | ? | |missing_property | Missing property name. | Looks for missing property when defining ES5 getters. | |{color:green}missing_a{color} | Missing '\{a\}'. | ? | newcap | newcap | |missing_a_after_b | Missing '\{a\}' after '\{b\}'. | ? | |statement_block | Expected to see a statement and instead saw a block. | Looks for braces in statement context (i.e. to start a line). | | | |unclosed | Unclosed string. | Checks for unclosed strings | |unclosed_comment | Unclosed comment. | Checks for unclosed comments. | |unclosed_regexp | Unclosed regular expression. | checks for unclosed regexps. | |unexpected_comment | Unexpected comment. | Looks for comments in JSLint directive sections, html. | * Check to see if each of these items are covered by our current parser * If not, write a unit test to cover the case(s) encapsulated by this rule.13
563APSTUD-4846Investigate ADSAFE warnings from JSLintAdSAFE Warnings |adsafe_a | ADsafe violation: '\{a\}'. | ? | |adsafe_autocomplete | ADsafe autocomplete violation. | ? | |adsafe_bad_id | ADSAFE violation: bad id. | ? | |adsafe_div | ADsafe violation: Wrap the widget in a div. | ? | |adsafe_fragment | ADSAFE: Use the fragment option. | ? | |adsafe_go | ADsafe violation: Misformed ADSAFE.go. | ? | |adsafe_html | Currently, ADsafe does not operate on whole HTML documents. It operates on fragments and .js files. | ? | |adsafe_id | ADsafe violation: id does not match. | ? | |adsafe_id_go | ADsafe violation: Missing ADSAFE.id or ADSAFE.go. | ? | |adsafe_lib | ADsafe lib violation. | ? | |adsafe_lib_second | ADsafe: The second argument to lib must be a function. | ? | |adsafe_missing_id | ADSAFE violation: missing ID_. | ? | |adsafe_name_a | ADsafe name violation: '\{a\}'. | ? | |adsafe_placement | ADsafe script placement violation. | ? | |adsafe_prefix_a | ADsafe violation: An id must have a '\{a\}' prefix | ? | |adsafe_script | ADsafe script violation. | ? | |adsafe_source | ADsafe unapproved script source. | ? | |adsafe_subscript_a | ADsafe subscript '\{a\}'. | ? | |adsafe_tag | ADsafe violation: Disallowed tag '\{a\}'. | ? |20
564APSTUD-4847Investigate Formatting warnings from JSLintFormatting Warnings ||Id||Description||Details||JSLint Option||JSHint Option|| |{color:green}expected_a{color} | Expected '\{a\}'. | If in JSON mode and string doesn't use double quotes (expects '"'). ? Also relates to unexpected spaces | white/es5 | trailing | |{color:green}expected_a_at_b_c{color} | Expected '\{a\}' at column \{b\}, not column \{c\}. | Related to indentation level. This checks that indent level matches expectations based on a setting (default is 4). | white | trailing | |{color:green}expected_space_a_b{color} | Expected exactly one space between '\{a\}' and '\{b\}'. | ? | white | trailing | |missing_space_a_b | Missing space between '\{a\}' and '\{b\}'. | ? | |{color:green}mixed{color} | Mixed spaces and tabs. | Looks for mixed spaces and tabs in leading indents. | | smarttabs | |too_long | Line too long. | Checks for lines exceeding a given max length/column count option value (maxlen). Default is 256. | |unexpected_space_a_b | Unexpected space between '\{a\}' and '\{b\}'. | ? |13
565APSTUD-4848Investigate JSHint-specific WarningsFormatting Warnings ||Id||Description||Details||JSHint Option|| |nonew| ? | ? | ? | |eqnull| ? | ? | ? | |globalstrict| ? | ? | ? | |lastsemic| ? | ? | ? | |laxbreak| ? | ? | ? | |laxcomma| ? | ? | ? | |multistring| ? | ? | ? | |onecase| ? | ? | ? | |regexdash| ? | ? | ? | |validthis| ? | ? | ? |20
566APSTUD-4850Remove deprecated references to ScriptingActivator.logError()We replaced the individual logError calls in plugins with calls to IdeLog.logError(). Some of the deprecated original calls still remain in the ScriptingActivator plugin.3
567APSTUD-4853Inputting CTRL+ENTER/CMD+ENTER in the FindBar inputs a \n in the EditorWhen the find bar has focus, and the user inputs CTRL+ENTER/CMD+ENTER, a newline character (\n) is inputted in the editor. When the findbar is in focus, the shortcuts contributed via the rubles should be disabled. This requires the Ruble context to be disabled when the findbar is in focus8
568APSTUD-4857PHP autocomplete for php magic functionsAutocomplete suggestions for php magic functions inside a class. If I type: <?php class Car { public function __ } ?> I want to get PHP suggestions for magic functions like __construct, __destruct, __toString, etc. Please see screenshot attached.8
569APSTUD-4860menu items disappear from Team menu in Project Explorer after adding a new Git repository in "Remotes"Steps to reproduce: 1) In Project Explorer, select a project with an existing Git repository configured under "remotes". 2) Team -> Remotes -> Add... 3) Save/confirm 4) Exit the menu, then open the Team menu again in Project Explorer - all menu items are now invisible (see attached screenshot). Restarting Studio or rebooting the PC doesn't help. Other projects' Team menus are not affected, only the one that just had another repository added.5
570APSTUD-4861Slow text entry with large PHP filesWhen typing code into a text window, and using PHP syntax highlighting, text entry is around 1 character every 500 milliseconds. Issue started 2 nights ago (on current nightly builds) Is there a way to roll back to a few days before ?20
571APSTUD-4864JS Type Inferencing fails to check local scope for variable type before checking globalsJS Type Inferencing will infer "self" here to be of type "Window" because we defined a Window.self global property in our metadata. When the type inferencing looks up the type of a property (self), it looks in the globals in the index, and if none are found then tries to infer the symbol. The logic likely should be reversed. In this case the self variable is defined in the local scope and we need to infer it's type there, rather than first consulting the Window.self property in the index. {code} var Utils = { create: function() { var self = { chain: function() { return self; } }; return self; } }; var thing = Utils.create(); thing.chain(); {code}13
572APSTUD-4867Add editor preference to configure column cutoff for code coloringh3. Steps to Reproduce Syntax colors seem to break after reaching a certain column in PHP code. h3. Actual Result Code appears in white as a regular text. h3. Expected Result 8
573APSTUD-4868Make @link and @example references clickable on PHP Documentation HoverHello It would be very useful to have @link and @example links clickable on the PHPDoc tooltip, having links open on the internal browser and files in the editor. The current implementation doesn't even shows either of them: !https://jira.appcelerator.org/secure/attachment/28049/dumb.png!8
574APSTUD-4870PHP formatter did not support double quoted identifier heredoc string Starting with PHP 5.3.0, the opening Heredoc identifier may optionally be enclosed in double quotes: But PHP formatter won't work on following sample.(If you change <<<"FOOBAR" to <<< FOOBAR, the formatter works fine. <?php function test() { $varb="Johnny"; echo <<<"FOOBAR" Hello World! {$varb}! FOOBAR; } test(); 8
575APSTUD-4873"button proprietary attribute onclick" is invalid warning<button> onclick is called proprietary.5
576APSTUD-4874Add ability to toggle HTML Tidy rules on and offI appreciate your wanting to enforce the standard, but... I deliberately use duplicate id attributes because I also use jQuery to create small search contexts. Creating unique id attributes is both cumbersome and makes searching by id more complex. Ideally, I would like to be able to toggle this warning off.13
577APSTUD-4875HTML validator should not flag no-value boolean attributes in HTML 4Updated Aptana in STS this morning and now have a slew of warnings. They don't show up in the Problems area, however. This one is perplexing. Until today, the proposed value of the disabled property was "disabled". Now, "disabled" produces an invalid value warning and the proposed values are "true" and "false". I'm not that up on the standard, but I haven't seen, anywhere, that HTML5 properties can be "turned off" by specifying a value of "false". This appears, to me at least, to be a serious error.5
578APSTUD-4880Toggle comment shortcut messes up html formattingWhen placing the mouse cursor on the line you want to comment and pressing the shortcut to comment (ctrl + slash), the comment will remove any indents on that line. The same thing happens when you use the shortcut to uncomment. This only happens if you place the cursor anywhere on that line without highlighting the specific text. In the screenshot, the <body> tag loses its indent and unnecessary space is added inside the comment. The comment should begin where the <body> tag is inside the comment to be aligned and organized. It's not a huge deal, but i thought it would be worth mentioning for a future fix. Thanks. 5
579APSTUD-4883Need ability to specify JSLint settings on a global levelh3. Steps to Reproduce We just upgraded to Studio 3.1.3, and now we get a ton of JSLint errors in our code. (Seems to be because of changes to default settings?) We could put the settings into jslint comments to make it work how we want it to, but that would require adding the settings to the 300+ JavaScript files that we have on our site. That is unacceptable. We need a place to be able to specify JSLint's settings on a global level. We use JSLint on "reconcile" mode, and seeing all of the errors (for things like supposedly "messy" whitespace, using multiple 'var' statements, etc) makes the tool downright useless for the actual errors that we need it to catch. h3. Actual Result (See above) h3. Suggested solution Remove the filter box from the validator main page and have the pencil icon open up a new window (similar to how formatting works). See screenshots. For JSLint (and all validators), we would keep a filter text box, as well as have another text box where a user can specify whatever JSLint commands they'd like to issue I'm assuming this would be in the form of a string of options that would then be injected into the comments of a file before parsing.13
580APSTUD-4886Aptana cannot find ruby executableh3. Steps to Reproduce Ubuntu 12.04 RVM ruby 1.9.3 eclipse 3.7.2 I've setup a clean install of eclipse on Ubuntu 12.04 I installed all of the prerequisites using apt-get then installed the RVM and installed ruby 1.9.3 and set it as default. In my .bashrc I have the following lines [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting When I run the $ echo $PATH /home/sysadmin/.rvm/gems/ruby-1.9.3-p194/bin:/home/sysadmin/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/sysadmin/.rvm/rubies/ruby-1.9.3-p194/bin:/home/sysadmin/.rvm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/sysadmin/.rvm/bin and running $ ruby -v returns ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] h3. Actual Result When I run or debug as a rails app I get a popup that says: "Unable to find a Ruby executable." in the log file there is an entry !ENTRY com.aptana.ruby.debug 4 0 2012-06-05 11:58:28.000 !MESSAGE Unable to find a Ruby executable. h3. Expected Result I'm expect it to run/debug my app in the console. I have Aptana installed on Mac OS X lion and Snow leopard using the RVM just as this and it works. I've also had it working in earlier versions of Ubuntu. ANy help would be greatly appreciated13
581APSTUD-4887link tag's rel attribute value marked as warningThe following tags are marked with warnings for the "rel" attribute's "invalid value". We should add "*" as a value for that attribute (and rev). See http://www.w3.org/TR/html401/struct/links.html#edef-LINK {code} <link rel="shortcut icon" href="/favicon.ico" /> <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> {code}3
582APSTUD-4892Issue showing documentation for two functions with similar names on different files When you have the same function declared in two different files (not included at the same time on the project, so it doesn't affects run time), auto-completion and mouse hover use different documentation sources. Hovering keeps using the same file as the above screenshots (plugin.php) while hover uses the other file (load-scripts.php), I'm guessing it uses alphabetical order. !http://cl.ly/H93M/rare.png! We need a way to exclude a file as documentation source to avoid this. 8
583APSTUD-4894Error markers are not correct in PHP after refactoring to use parse cache (error markers are flushed).NULL5
584APSTUD-4895Highlighted text opaque, color schemes broken in PyDev My notebook computer, also running Aptana 3, now has the same issue as my desktop. I have now verified this issue on two different computers, both Windows 7 x64. ----- I followed all of instructions in email, attached my theme, reset defaults on annotations and set defaults on theme and as you can see from the attached stillbuggy.png the issue remains. In order to fix this I need to go to preferences > aptana studio > themes and press "reset defaults" *without changing anything* Every time I start I need to go do that reset defaults. I don't think it's the theme: something buggy happens when Aptana initializes that changes something in my settings. Having to go through settings to undo it is lame, and it has to be a change that happened with the latest upgrade. Please get someone to fix it... :) ----- After latest upgrade, highlighted text color (PyDev editor) is opaque and changing theme colors does not work reliably. All themes show behavior like the attached screenshot: the highlighted text foreground and background are the same color. Changing selected foreground colors does not work as expected: selecting a dark-colored selection background results in a light-colored background. Selecting the theme override for pydevOccurrenceIndication seems to fix the issue for the current session, but when I shut down Aptana and restart the highlight is broken again, even though the little 'B' icon next to pydevOccurrenceIndication is still selected. I need to click it off and back on again to fix the highlight, which again only works until I restart. I've been using Aptana without issues for at least 6 months prior to this issue, and have not touched color settings in months. The latest update seems to have broken theme handling. MOTE UPDATES: See screen2.png attached. If you look closely, I selected a very dark gray(almost back) color for the line highlight and Aptana is using a bright gray. Any color I choose for the line highlight is ignored, and Aptana chooses a much brighter color. Aptana is just ignoring my setting for selected text altogether. MORE UPDATES: I have had two instances today where I started Aptana, went in and changed pydevOccurrenceIndication so that I could see highlighted text (the broken same-background-and-foreground bug is 100% repeatable). After switching to another window and switching back the highlight was broken again, requiring me to change the pydevOccurrenceIndication setting again. This is profoundly irritating. I hope whatever change broke color handling was awesome enough to cause this much pain.5
585APSTUD-4896PHP Autocompletion for parent methods + namespaceWhen you tried to access to parent methods which are in different namespace it doesn't work: {code:php|borderStyle=solid} <?php namespace Package1; class Foo { public function __construct(){ } public function fooMethod(){ } } namespace Package2; class Foo extends \Package1\Foo { public function __construct(){ parent:://Nothing is proposed while __construct() or fooMethod() should be listed } } {code}13
586APSTUD-4897The PHP parser should be improved to use the parse cache properly.In PHP a problem collector is notified about errors during the parse and when the parse finishes, errors are reported, instead of working by adding problems found and later reporting them (after a parse). So, it does not work properly if it takes advantage of the parsing (because in this case, the actual parsing won't take place -- and thus the error report won't happen). Error reporting happens in: com.aptana.editor.php.internal.parser.PHPParser.parse(IParseState, WorkingParseResult) at the statement: ast.flushErrors(); Also, on revision afc72082e4ae14bedcc11a0c24053a45bdca5447, a cache with the 'last valid ast' was created inside the PHPParser, but this seems odd, as the parser will always return the last 'good' parse, but this is not correct in the following situation: 1. create 2 files (both with unrelated content but with errors) 2. close them 3. open one and fix the error 4. open the other one (already with the error): the php ast returned will be wrong as the one with the 'last good parse' will be returned This would also break the ParsingEngine cache if it was in place because the parser would have the wrong ast returned.20
587APSTUD-4899Implement JSLint-identical rules for most common subset of JS rulesImplement checks for these rules: already_defined* and* assign_exception* avoid_a* bad_assignment* bad_new* bad_number* bad_wrap* conditional_assignment* constructor_name_a* dangerous_comment* dangling_a* empty_block* empty_class* evil* -expected_identifier_a_reserved-(causes a parse error, so we shouldn't need to do this) expected_number_a* function_eval* implied_evil* leading_decimal_a* -name_function-(causes a parse error, so we shouldn't need to do this) not_a_constructor* not_greater* parameter_arguments_a* radix* reserved_a* strange_loop* subscript* sync_a* trailing_decimal_a* unescaped_a unnecessary_initialize* unreachable_a_b* use_array* use_braces* use_object* use_param* used_before_a* var_a_not* weird_new* weird_program* wrap_immediate* write_is_wrong*40
588APSTUD-4901NPE in RubyLineBreakpointAdapter.getFileStoreI've installed the Aptana plugin in my already existing Eclipse installation. Soon after that I regularly got popups saying "Multiple errors have occured". The .log is packed with this error message four times in a row: {code} !ENTRY org.eclipse.ui.workbench 4 2 2012-06-12 09:05:28.455 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench". !STACK 0 java.lang.NullPointerException com.aptana.ruby.debug.ui.RubyLineBreakpointAdapter.getFileStore(RubyLineBreakpointAdapter.java:155) com.aptana.ruby.debug.ui.RubyBreakpointAdapterFactory.getAdapter(RubyBreakpointAdapterFactory.java:29) org.eclipse.core.internal.adapter.AdapterFactoryProxy.getAdapter(AdapterFactoryProxy.java:80) org.eclipse.core.internal.runtime.AdapterManager.getAdapter(AdapterManager.java:295) org.eclipse.ui.part.WorkbenchPart.getAdapter(WorkbenchPart.java:151) org.eclipse.ui.texteditor.AbstractTextEditor.getAdapter(AbstractTextEditor.java:6181) org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.getAdapter(AbstractDecoratedTextEditor.java:1401) org.eclipse.ui.editors.text.TextEditor.getAdapter(TextEditor.java:181) org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager$ToggleBreakpointsTargetAdapterFactory.canGetToggleBreakpointsTarget(ToggleBreakpointsTargetManager.java:304) org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager$ToggleBreakpointsTargetAdapterFactory.isEnabled(ToggleBreakpointsTargetManager.java:352) org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager.getEnabledFactories(ToggleBreakpointsTargetManager.java:488) org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager.getPreferredToggleBreakpointsTargetID(ToggleBreakpointsTargetManager.java:540) org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager.getToggleBreakpointsTarget(ToggleBreakpointsTargetManager.java:554) org.eclipse.debug.internal.ui.actions.breakpoints.RetargetBreakpointAction.getAdapter(RetargetBreakpointAction.java:50) org.eclipse.debug.internal.ui.actions.RetargetAction.partActivated(RetargetAction.java:170) org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:72) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.runtime.Platform.run(Platform.java:888) org.eclipse.ui.internal.PartListenerList.fireEvent(PartListenerList.java:57) org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:70) org.eclipse.ui.internal.PartService.firePartActivated(PartService.java:187) org.eclipse.ui.internal.PartService.setActivePart(PartService.java:306) org.eclipse.ui.internal.WWinPartService.updateActivePart(WWinPartService.java:134) org.eclipse.ui.internal.WWinPartService.access$0(WWinPartService.java:125) org.eclipse.ui.internal.WWinPartService$WWinListener.partDeactivated(WWinPartService.java:50) org.eclipse.ui.internal.PartListenerList2$4.run(PartListenerList2.java:115) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.runtime.Platform.run(Platform.java:888) org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:55) org.eclipse.ui.internal.PartListenerList2.firePartDeactivated(PartListenerList2.java:113) org.eclipse.ui.internal.PartService.firePartDeactivated(PartService.java:242) org.eclipse.ui.internal.PartService.setActivePart(PartService.java:300) org.eclipse.ui.internal.WorkbenchPagePartList.fireActivePartChanged(WorkbenchPagePartList.java:57) org.eclipse.ui.internal.PartList.setActivePart(PartList.java:136) org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3636) org.eclipse.ui.internal.WorkbenchPage.internalActivate(WorkbenchPage.java:691) org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:663) org.eclipse.ui.internal.WorkbenchPage.makeActive(WorkbenchPage.java:1324) org.eclipse.ui.internal.WorkbenchPage.updateActivePart(WorkbenchPage.java:1304) org.eclipse.ui.internal.WorkbenchPage.handleDeferredEvents(WorkbenchPage.java:1496) org.eclipse.ui.internal.WorkbenchPage.deferUpdates(WorkbenchPage.java:1485) org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1459) org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1514) org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:61) org.eclipse.ui.internal.PartStack.close(PartStack.java:537) org.eclipse.ui.internal.EditorStack.close(EditorStack.java:206) org.eclipse.ui.internal.PartStack$1.close(PartStack.java:120) org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:83) org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269) org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278) org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1) org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$1.closeButtonPressed(DefaultTabFolder.java:71) org.eclipse.ui.internal.presentations.PaneFolder.notifyCloseListeners(PaneFolder.java:631) org.eclipse.ui.internal.presentations.PaneFolder$4.mouseUp(PaneFolder.java:230) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:219) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code} If you need more information about my installation I'll be glad to post it.5
589APSTUD-4902Provide preference to customize when syntax highlighting is disabled after some charactersOn PHP editor the syntax highlighting disappears after some characters making all text white (I suppose the default text color). Bug happens with any themes. Bug happens with / without word-wrap.8
590APSTUD-4903PHP parse exception for a specific contentPHP parse error when working on the attached file. {code} java.lang.IllegalArgumentException: Illegal parameter start positions: [I@15aa2b5 at com.aptana.editor.php.internal.indexer.FunctionPHPEntryValue.<init>(FunctionPHPEntryValue.java:113) at com.aptana.editor.php.internal.indexer.PDTPHPModuleIndexer$PHPASTVisitor.visit(PDTPHPModuleIndexer.java:1456) at org2.eclipse.php.internal.core.ast.nodes.MethodDeclaration.accept0(MethodDeclaration.java:82) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at org2.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:98) at org2.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:91) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at org2.eclipse.php.internal.core.ast.nodes.ClassDeclaration.childrenAccept(ClassDeclaration.java:119) at org2.eclipse.php.internal.core.ast.nodes.ClassDeclaration.accept0(ClassDeclaration.java:105) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at org2.eclipse.php.internal.core.ast.nodes.Program.childrenAccept(Program.java:203) at org2.eclipse.php.internal.core.ast.nodes.Program.accept0(Program.java:196) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at com.aptana.editor.php.internal.indexer.PDTPHPModuleIndexer.indexModule(PDTPHPModuleIndexer.java:4118) at com.aptana.editor.php.indexer.PHPGlobalIndexer$WrapIndexer.indexModule(PHPGlobalIndexer.java:118) at com.aptana.editor.php.indexer.PHPGlobalIndexer.processUnsavedModuleUpdate(PHPGlobalIndexer.java:1034) at com.aptana.editor.php.internal.parser.PHPParser.parse(PHPParser.java:149) at com.aptana.parsing.ParsingEngine.parse(ParsingEngine.java:272) at com.aptana.parsing.ParserPoolFactory.doParse(ParserPoolFactory.java:244) at com.aptana.parsing.ParserPoolFactory.parse(ParserPoolFactory.java:231) at com.aptana.editor.php.internal.ui.editor.PHPSourceEditor.getAST(PHPSourceEditor.java:179) at com.aptana.editor.common.AbstractThemeableEditor$3.run(AbstractThemeableEditor.java:1253) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) {code} {code} java.lang.IllegalArgumentException: Illegal parameter start positions: [I@d0775f at com.aptana.editor.php.internal.indexer.FunctionPHPEntryValue.<init>(FunctionPHPEntryValue.java:113) at com.aptana.editor.php.internal.indexer.PDTPHPModuleIndexer$PHPASTVisitor.visit(PDTPHPModuleIndexer.java:1456) at org2.eclipse.php.internal.core.ast.nodes.MethodDeclaration.accept0(MethodDeclaration.java:82) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at org2.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:98) at org2.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:91) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at org2.eclipse.php.internal.core.ast.nodes.ClassDeclaration.childrenAccept(ClassDeclaration.java:119) at org2.eclipse.php.internal.core.ast.nodes.ClassDeclaration.accept0(ClassDeclaration.java:105) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at org2.eclipse.php.internal.core.ast.nodes.Program.childrenAccept(Program.java:203) at org2.eclipse.php.internal.core.ast.nodes.Program.accept0(Program.java:196) at org2.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:285) at com.aptana.editor.php.internal.indexer.PDTPHPModuleIndexer.indexModule(PDTPHPModuleIndexer.java:3867) at com.aptana.editor.php.indexer.PHPGlobalIndexer$WrapIndexer.indexModule(PHPGlobalIndexer.java:92) at com.aptana.editor.php.indexer.PHPGlobalIndexer$7.run(PHPGlobalIndexer.java:441) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}8
591APSTUD-4906No deployment option exists in Deploy My Application dialog for Web project1. Create a web project via File > New > Web Project; 2. Right-click on the project and select Publish > Run Web Deployment Wizard. Expected result: the dialog should contain options for FTP, Capistrano, Heroku, etc. Actual result: the list is empty. I suspect this has to do with the refactoring of deploy.ui plugin, and the compilation errors we saw and somehow fixed could be related as well. 8
592APSTUD-4907Major lag in editing large files with word wrap enabledh3. Steps to Reproduce # Open a css file with 1000 lines # Enable word wrap # Scroll to bottom of page # Start typing h3. Actual Result Keyboard lag (or whatever is going on) is so significant that unexpected results happen. h3. Expected Result Normal opperation with no lag. Not sure what happened, but it seems since the last update, if I have a file that is more than a few hundred lines of code, I get significant lag happening. This doesn't happen until you start to scroll down the page.8
593APSTUD-4909HTML validation filters don't workI am using custom HTML tag - lets call it <specialtag>. I added rules in: Options -> Aptana Studio -> Validation -> HTML -> HTML Tidy Validator (I tried all validators on the list) To test: * create a new document with <specialtag></specialtag> in it * add new validation filter .&lowast;specialtag.&lowast; to the HTML Tidy validator * See "specialtag is not recognized" in the problems view The editor still shows warning message and underscores the content of the <specialtag>.3
594APSTUD-4912Add portal controller to return the currently active perspectiveRelated to APSTUD-4799, this would be a call to return the currently active perspective.5
595APSTUD-4917Ruby: Problem formatting Ruby source code where block contains only commentsctrl-shift-f can't format source code of the attached file.8
596APSTUD-4919Terminal displays incorrectly after real estate is exhausted with content.When the terminal screen is filled up after typing commands and the output goes passed the bottom, the text jumbles up so typing in the terminal no longer works. I attached on screenshot of what happens but it does other things in that it won't work when the content goes passed the bottom. Possibly an issue with buffer flushing.13
The file is too large to be shown. View Raw