Mark error in IRemoteFile in Eclipse - eclipse

I write an Eclipse plug-in that marks errors in files. With IFile, this is pretty easy, as one can use the createMarker() method.
Now I also have IRemoteFile elements. As IRemoteFile does not implement IResource, I cannot call createMarker(). Does anybody know a way to achieve a similar result with IRemoteFile?

Unfortunately, markers can only be created for resources.
IResource#createMarker(String)
There is a long standing enhancement request but it seems that there are no plans to work on this.
And I don't see how this could be worked around, except maybe that you create shadow resources for each IRemoteFile that you want to have markers for.
And of course synchronize the resources' content with the remote file so that the markers can be opened in an editor, etc.

Related

Is there a way to create templates for text files in Eclipse?

In Eclipse, I really enjoy being able to create templates for things I commonly write in Java and XML. While there is some room for improvement, templates have proven to be quite the time saver. Today I was documenting some notes in the release notes. We have a specific format that we write said release notes in. I thought it would be handy to write a small template so that I could easily insert most of the boiler plate text when I amend the notes. So I dug around the eclipse settings and didn't see anything for plain text files. I googled around and also didn't see anything.
So is what I'm wanting to do possible in Eclipse? Is there a plugin I would need to enable such a feature?
I assume the closest you can get is using Snippets
Add the view by clicking Window -> Show View -> Snippets. In that view, right-click and select Customizeto create custom snippets. You can now add those snippets in your textfile by double-clicking them.
Maybe there is also some shortcut feature I didn't find yet...

How to create exportable links to code lines using eclipse

I want to ask my co-workers Alice and Bob specific questions about particular lines in code, e.g. com.example.HelloWorld.java:l.435. It would be nice if I could take some links out of eclipse, mail them in text form to another developer (also using eclipse) and go over to the co-worker and talk about those lines (without manually going to com.example.HelloWorld.java:l.435), but have some clickable link instead.
I know the bookmarks feature of eclipse, but I don't see a how to insert bookmarks.
Edit: I think I'm going to create a plug-in to make bookmarks create a fake exception stacktrace, which can be inserted into stack trace console. Has the benefit that the receiver can use it without installing something. [added code-review tag]
There is no way built-in to do that kind of thing, but it's an interesting idea for a plugin. Have you tried searching in the Eclipse Marketplace (available from the Help menu) to see if there's anything close?
An alternative that might meet your productivity need (thought not your specific feature request), is real-time shared editing via the DocShare feature of ECF. If your entire team were to set this up, you could use it to do a shared editing session with teammates.

Is there a tool to explicitly organize files in Eclipse into groups without moving them into different packages?

Is there a plugin that lets you manually add files to lists/categories? Something like Mylyn but manual and more files--kind of the way Gmail manages mail--a tagging system.
If I let mylyn manage my windows it actually closes them without any way to shut off (Something I absolutely cannot tolerate, I use my open windows to remind me of what I'm working on--my memory absolutely NEEDS the help)--on top of that it automatically adds files to lists just because that list happens to be open when I start doing something else.
I guess I'm thinking of a plugin that offers a different version of the "Package Explorer", one that is organized by task instead of by package hierarchy, and allows you to move files around at will.
...or is there a way to adapt an existing tool to do this (without actually moving the files around, of course!) Bookmarks don't seem to offer a "Grouping" but using a common first word for the description in my bookmarks may work... Any other ideas?
After messing with it a bit more, it looks like bookmarks might do what I want. It is possible to filter bookmarks by searching the subject string, so as long as I put tags in the subject string I can select a sub-filter and have it bring up all the relevant files for a given task.
I won't accept this for a while in case someone has a better answer (a plugin perhaps?)

Learning Eclipse MDT-UML2 Sequence Diagrams

Are there any tutorials or documentation files for drawing Sequence Diagrams with Eclipse MDT-UML2?
I can't put a Lifeline on the page. It took me 10 minutes to figure out that I first have to make a big Iteraction, and then I can put Lifelines into it.
I can't figure out how to make the Participant box wider in the lifeline. Any name more than 4 characters is too wide for the box. When I do the obvious thing of clicking and dragging the handles, the box springs back to its original size.
I can add a Message by clicking "Message" in the pallette and click-dragging an arrow from line Lifeline to another. Now I have an arrow labeled "1: *". I've tried every way I can think of to change that name: double-clicking on it, shift-clicking, ctrl-clicking, changing Name in the properties.
Can anyone help?
As I understand it MDT-UML2 is in the very early stages, it may not work as it should always. Additionally, the sequence diagram is a newer one, see below. There were no tutorial I could find, but I did link to samples below. I also found a comment in the eclipse bug tracker for this feature:
Here are the most important issues from my side: moving of lifelines, create messages,
replies are causing strange behaviour (some kind of auto alignment). Moreover it
should be possible to give the messages names.
They say it is resolved, but you be the judge.
From the wiki (Note:What you want is UML2 Tools):
http://wiki.eclipse.org/MDT-UML2Tools
Interaction diagrams (in progress):
Sequence (new in Galileo)
This may not help, but here is a link to the samples: http://wiki.eclipse.org/images/3/3a/UML2Tools_samples.psf
The tutorial reference does not seem to cover the new stuff, just the class diagram.
http://www.vogella.de/articles/UML/article.html
Search stackoverflow for other open source tools to use. The MDT-UML2 is coming along and can be used for some stuff, especially simple DSMs/DSLs/UML Profiles, but for drawing easily there are a host of good tools. An ok thread: What's the best UML diagramming tool? or
https://stackoverflow.com/questions/390438/good-free-uml-tool-for-java-eclipse

How do you keep track of your programming TODOs? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm one of those people who can't get anything done without a to-do list. If it isn't on the list it doesn't exist.
Notepad Method:
When I'm programming I've been keeping notepad open with a list of to-do's for my current project. I'll constantly re-arrange these based off priority and I cross them off and move them to the completed section when I'm finished with that particular task.
Code Comments:
Some programmers pepper their projects source code with:
// TODO: Fix this completely atrocious code before anyone sees it
Plus, I know that there are some tools that show you a list of all TODOs in your code as well.
Website Task Tracker:
Remember The Milk
Backpack
Manymoon
Voo2do
Gmail Tasks
TeuxDeux
TodoDodo
Ta-da lists
... and many more
What have you found to be the best method of keeping track of your to-do lists for multiple projects?
Like others, I pepper them about my code, but I use the warning directive to generate a compiler warning too:
#warning TODO: Implement foobar
This way I can still search for "TODO" but they also shout at me whenever I build.
Pen and paper.
Combined with the genious PocketMod, it's totally perfect.
Striking TODOs is soooo satisfying!
I can't speak for other IDE's, but Eclipse will search your project's source files for TODO comments (as well as FIXME and XXX by default) and create tasks for you in the tasks view.
This leads to intriguing situations where you check the tasks view, double-click on a TODO task, and read the comment:
// TODO: Add this functionality.
Eclipse will also add TODO comments when generating certain code blocks, like method implementations, catch blocks for exceptions, etc.
TODO (and other) comments are great with Visual Studio and ReSharper installed:
(source: jetbrains.com)
Although I didn't try it I really like the idea of tests as todos. What else should get you going if not a failed test?
NextAction, from TimeSnapper
Personal Abstract Todos
I use Tomboy Notes or paper to make a quick list of abstract high level tasks. Often when I'm on the phone with my manager, I just need to get things written down.
Source Code Specfic Todos
I use the inline TODO: / #todo comment marker in my code and then use the Netbeans plugins that give me a running list of todos throughout the project. Since Netbeans can aggregate todo markers from multiple projects, it does not make a difference how many different projects I'm running.
Multiperson Tasks / Todos
Once I have to keep track of todos for more than myself, I move to project management software like OpenProj, MS Project, etc. Also, if the todos involve bugs or feature requests, I use our bugtracker. Other todos, can be manged by a helpdesk system as well.
I use ToDoList from AbstractSpoon. It lets you divide your ToDo list into projects and can even be used by a number of users for larger projects using a shared network drive.
For every task in a project i create a new entry in the issue tracker (Bugzilla for me).
A big advantage is that you can track back every changes made by the issue ID.
You can report customers or project members the status of your task.
You can create a new bug type like "task", "todo" or "feature-request".
It's a central solution. No local stuff...
I our development team there is a rule which says: "Do never change any code without a corresponding entry in the issue tracker. Never!"
I use Pen and Paper to jot down notes. I also use TODO/FIXME tags in code that gets highlighted yellow in Vim and tracked by the TODO extension in Komodo.
One of the most useful additions for me has been using Samurize to embed a plain text file onto my desktop (http://lifehacker.com/software/plain-text/geek-to-live--incorporate-text-files-onto-your-desktop-213280.php). I have 3 virtual desktops and it lives on my email desktop which is where I wind up first thing every morning. It contains a text file with the items that I need to do and it rarely runs more than a week ahead.
Wednesday 2/11/2009
- Item 1
- Item 2
Thursday 2/12/2009
- Item 3
I use Executor that has a keyword "todo" that automatically opens gvim with this file when I want to edit/add/remove items. This makes it about 3 keystrokes to get it open and ready to modify. It helps me remember the Monday morning production moves before I get buried in email and meetings. As soon as I edit, it's reflected on the desktop.
Obviously for longer and more detailed things, I rely on Roundup, Outlook reminders, etc. but this has been a handy way to jot things down so they won't get lost in the shuffle.
I use inline TODO: comments as Visual Studio will track these for me, of course I still have to look at the task list to see them. I cannot count the number of times I have found a TODO: comments whilst reviewing some code I thought was complete.
I would make a clear difference between FIXME and TODO. FIXME is a critical and must be fixed before commit/release. TODO can live a bit longer but should be cleaned away eventually.
A simple plain text file (TODO) in the top level of the project's cvs/svn area works for me for simple projects.
Like others have mentioned, I use the standard FIXME/TODO/XXX in my code comments, and then can find the list of tasks within my IDE using their various tools. I also use hudson's task scanner plugin to keep track of everything, since I'm a sucker for graphs.
I created a build task that picks out //TODO: lines from my code files and generates a report I include in team city. It gives you a quick way of see any outstandings on a project without having to check it out.
you can also use the CodeTagsPlugin with Trac
When programming Java in Eclipse, I find it really useful to, as you say "pepper my source code with // TODO: comments - mainly because Eclipse looks up each one in the project and compiles a task list for me =) In Visual Studio, there is a Task List panel, which I use sometimes, but I don't find it as streamlined as just having the comments in Eclipse.
I use eclipse as IDE, which collects all TODO's to a list and shows it in an outline. Very easy and usable.
I use emacs org-mode to keep track of not only code TODOs, but my whole life. It works as an extremely powerful outliner with some spreadsheet and calendar features as well. I use mercurial for lightweight version handling and simple replication between different machings.
It works surprisingly well.
Having done an extensive search for a suitable "to do list" application I settled on mylyn - the one that comes supplied with Eclipse.
It is easy to create and manage tasks. Tasks can be imported and linked to Bugzilla or a number of other different task repositories. It also has a "task context" which enables files that are relevant to a task to be highlighted and those that are irrelevant to be hidden (which is far more useful than I anticipated it would be).
Eclipse tracks your TODO and list them in a proper windows automatically. I find it powerful enough if you don't need advanced features.
I'm quite fond of tracks. It has the flavour of GTD without getting too regimented about it.
I can quickly whack stuff in there as I think of it, and then not have to worry about forgetting after that.
Wow, I just had this question yesterday. After some searching, I settled on the ReminderFox Firefox extension. It's completely integrated into the browser and has pop ups to remind you every time you open your browser when a task is due.
I like Mylyn a lot: integrated into Eclipse, works with many trackers as well as without (local tasks) and realizes new concepts like the focused UI.
There is also Task Scanner Plugin for Hudson (in case it fits in your environment). With that you can track number of TODOs/FIXMEs on your continuous integration build reports.
alt text http://www.86th.org/hudson.jpg
We use the "Open Tasks Trend" feature in Hudson, this works for a slew of languages. For our C# project we have 3 levels of tasks and this is accomplished by different TODO: style comments.
High Priority
Matches on FIXME:, HARDCODED: or HACK:
Medium Priority
Matches on TODO:
Low Priority
Matches on MEH: or CODEREVIEW:
Hudson will then take this list and trend graph it as shown in the picture, as well as have a sortable, filterable list of the tasks and it will display the messages on the web page with links that will take you right to the line in the source code on Hudson.
Plus we can easily setup points of interest for code reviews with CODEREVIEW: and have a nice concise list to print out.
I use Sandglaz and place my todos in 3 columns now, next and later (a little like their blog, but only one row)...and its easy and fast to use. I'm a freelancer so I work on several projects at a time so it works for me
I use pending tests only to remind myself to write tests. I use Rspec, so it has that build it.
For C++ projects (native/ATL):
#ifndef _TODO_H_
#define _TODO_H_
#pragma once
// from atldef.h:
#ifndef _ATL_STRINGIZE
#define __ATL_STRINGIZE(_Value) #_Value
#define _ATL_STRINGIZE(_Value) __ATL_STRINGIZE(_Value)
#endif
// put x in quotes, no need to use #pragma!
#define __TODO(x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : TODO: "x))
#define __WTF(x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : WTF?! "x))
// prefer to use ISO-formatted date
#define __BUGFIX(date, x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : BUGFIX: "#date" "x))
#define __CHANGE(date, x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : CHANGE: "#date" "x))
#endif _TODO_H_
Looking for something like that for C#.
doxygen can track such issues
One of our source code modules is absolutely littered with inline #pragma todo lines. The build output is polluted so we never can really tell when there are any new compiler warnings. Some of the todos have been there for years and the original developer has long since left the company.
When I have many many todos I discovered that it is useless to track them. You end up with hundreds of todos that can't be done.
Only write what you are asked (boss ) and do what bring the biggest benefits everyday.
I however have a next list. I wrote what I'm currently doing at the top and things I need to fix to complete it. My next list can be done in hours or days usually.