SlickEdit Community
Archived Beta Discussions => SlickEdit 201x Beta Discussions => SlickEdit 2014 v19 beta => Topic started by: Johnco3 on November 11, 2014, 12:59:17 PM
-
Slickedit Refused to close while I had a visual studio project open on the mac platform - Still cannot open files - although I can see the structure of the 6 sub-projects and the associated files. Double clicking on any of the files results in still leaving the main editor window blank - again I suspect that the file separators is the issue. did a clean install by removing the contents of
rm -fR ./Library/Application\ Support/SlickEdit/
prior to installation
WHen I exited the application it just hung leaving a dialog indicating that background tagging was in progress
John
Process: vs [7039]
Path: /Applications/SlickEdit2014.app/Contents/MacOS/vs
Identifier: com.slickedit.SlickEdit
Version: 19.0.0 (19.0.0.14)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: vs [7039]
User ID: 501
Date/Time: 2014-11-11 07:53:00.036 -0500
OS Version: Mac OS X 10.10 (14A389)
Report Version: 11
Anonymous UUID: 988899B0-6D3B-5369-0F92-19153225B283
Sleep/Wake UUID: D8DD9863-BBA5-46C8-8477-88110885EFDD
Time Awake Since Boot: 100000 seconds
Time Since Wake: 2300 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000068
VM Regions Near 0x68:
-->
__TEXT 0000000100000000-00000001018ae000 [ 24.7M] r-x/rwx SM=COW /Applications/SlickEdit2014.app/Contents/MacOS/vs
Application Specific Information:
Performing @selector(terminate:) from sender NSMenuItem 0x105024f20
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.slickedit.SlickEdit 0x0000000100f5c788 vshow_window(QWidget*, int) + 40
1 com.slickedit.SlickEdit 0x0000000100026c92 mdiCallbackExit(int) + 50
2 libsystem_platform.dylib 0x00007fff99a50f1a _sigtramp + 26
3 libsystem_kernel.dylib 0x00007fff8b971486 __semwait_signal + 10
4 com.slickedit.SlickEdit 0x000000010102ca2a cmThread::sleep(int) + 122
5 com.slickedit.SlickEdit 0x0000000100cb82a0 slickedit::SEListTagsThread::shutdownTarget() + 80
6 com.slickedit.SlickEdit 0x0000000100ca91c2 slickedit::SEListTagsManager::doShutdownThreads() + 482
7 com.slickedit.SlickEdit 0x00000001001c1c82 vsTerminate + 194
8 com.slickedit.SlickEdit 0x0000000100026ca0 mdiCallbackExit(int) + 64
9 com.slickedit.SlickEdit 0x000000010008e13f pexit_op() + 63
10 com.slickedit.SlickEdit 0x000000010006e7f1 run_proc(int) + 481
11 com.slickedit.SlickEdit 0x0000000100090df1 run_proc_immediate2(m_s*, int, int, VSARGTYPE*, int, int) + 321
12 com.slickedit.SlickEdit 0x0000000100090c9b run_proc_immediate(int, int, VSARGTYPE*, int, int) + 219
13 com.slickedit.SlickEdit 0x00000001002b8ecc execute_command(VSLSTR*, int, int*, slickedit::SEString const&) + 2444
14 com.slickedit.SlickEdit 0x000000010025060c vsaexecutelstr(unsigned char*, int, VSLSTR*) + 972
15 com.slickedit.SlickEdit 0x00000001002501aa vsExecute + 202
16 com.apple.CoreFoundation 0x00007fff997d3cbc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
17 com.apple.CoreFoundation 0x00007fff996c51b4 _CFXNotificationPost + 3140
18 com.apple.Foundation 0x00007fff8cbfeea1 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
19 com.apple.AppKit 0x00007fff9286d39f -[NSApplication terminate:] + 1759
20 libsystem_trace.dylib 0x00007fff8e367cd7 _os_activity_initiate + 75
21 com.apple.AppKit 0x00007fff9281c5e7 -[NSApplication sendAction:to:from:] + 410
22 com.apple.AppKit 0x00007fff9283672a -[NSMenuItem _corePerformAction] + 382
23 com.apple.AppKit 0x00007fff92836447 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
24 libsystem_trace.dylib 0x00007fff8e367cd7 _os_activity_initiate + 75
25 com.apple.AppKit 0x00007fff92883ce6 -[NSMenu performActionForItemAtIndex:] + 131
26 com.apple.AppKit 0x00007fff92883c56 -[NSMenu _internalPerformActionForItemAtIndex:] + 35
27 com.apple.AppKit 0x00007fff92883aa2 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 107
28 com.apple.AppKit 0x00007fff9282c03b NSSLMMenuEventHandler + 724
29 com.apple.HIToolbox 0x00007fff8bfa532c DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1260
30 com.apple.HIToolbox 0x00007fff8bfa476e SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 386
31 com.apple.HIToolbox 0x00007fff8bfb9286 SendEventToEventTarget + 40
32 com.apple.HIToolbox 0x00007fff8bfee795 SendHICommandEvent(unsigned int, HICommand const*, unsigned int, unsigned int, unsigned char, void const*, OpaqueEventTargetRef*, OpaqueEventTargetRef*, OpaqueEventRef**) + 428
33 com.apple.HIToolbox 0x00007fff8c021e8d SendMenuCommandWithContextAndModifiers + 59
34 com.apple.HIToolbox 0x00007fff8c021e34 SendMenuItemSelectedEvent + 188
35 com.apple.HIToolbox 0x00007fff8c021d06 FinishMenuSelection(SelectionData*, MenuResult*, MenuResult*) + 96
36 com.apple.HIToolbox 0x00007fff8c0298b1 MenuSelectCore(MenuData*, Point, double, unsigned int, OpaqueMenuRef**, unsigned short*) + 702
37 com.apple.HIToolbox 0x00007fff8c02949e _HandleMenuSelection2 + 446
38 com.apple.AppKit 0x00007fff927b1e6e _NSHandleCarbonMenuEvent + 277
39 com.apple.AppKit 0x00007fff9264db90 _DPSNextEvent + 1843
40 com.apple.AppKit 0x00007fff9264cfd0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
41 com.apple.AppKit 0x00007fff92640f73 -[NSApplication run] + 594
42 QtGui 0x00000001028dc640 QDesktopWidget::resizeEvent(QResizeEvent*) + 13040
43 QtCore 0x000000010268e5a4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
44 QtCore 0x000000010268e954 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 324
45 QtCore 0x00000001026911cc QCoreApplication::exec() + 188
46 com.slickedit.SlickEdit 0x0000000100025c88 vmain(int, char**) + 2584
47 com.slickedit.SlickEdit 0x0000000100f64b94 xmain + 68
48 com.slickedit.SlickEdit 0x00000001000440f9 main + 9
49 com.slickedit.SlickEdit 0x0000000100005c74 start + 52
Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff8b97222e kevent64 + 10
1 libdispatch.dylib 0x00007fff95dbda6a _dispatch_mgr_thread + 52
Thread 2:
0 libsystem_kernel.dylib 0x00007fff8b96c52e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff8b96b69f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff99727b14 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff99726fdb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff99726838 CFRunLoopRunSpecific + 296
5 com.apple.AppKit 0x00007fff927b08f7 _NSEventThread + 137
6 libsystem_pthread.dylib 0x00007fff9316e2fc _pthread_body + 131
7 libsystem_pthread.dylib 0x00007fff9316e279 _pthread_start + 176
8 libsystem_pthread.dylib 0x00007fff9316c4b1 thread_start + 13
Thread 3:
0 com.slickedit.SlickEdit 0x0000000100cb529e slickedit::SEListTagsTarget::isTargetCancelled() const + 14
1 com.slickedit.SlickEdit 0x000000010033dd1e CPPParser::skipUntilSemicolon(bool, slickedit::SEString*, bool, bool) + 62
2 com.slickedit.SlickEdit 0x000000010037b680 CPPParser::parseClassMembers(int, slickedit::SEString const&, slickedit::SEString const&, int, CPPTagInterface*) + 13856
3 com.slickedit.SlickEdit 0x000000010036dc31 CPPParser::parseObjectiveCClassDefinition(int, int, slickedit::SEString const&, slickedit::SEString const&, int, int) + 5025
4 com.slickedit.SlickEdit 0x000000010033138c CPPParser::parseGlobalDeclarations(slickedit::SEString const&) + 26476
5 com.slickedit.SlickEdit 0x000000010032abd4 CPPParser::parseProgram() + 116
6 com.slickedit.SlickEdit 0x0000000100306c4e cpp_list_tags_callback(slickedit::SEListTagsTarget&) + 350
7 com.slickedit.SlickEdit 0x0000000100caf9cd slickedit::SEPrivateListTagsTarget::parseFileForTags(slickedit::SEListTagsTarget&) + 621
8 com.slickedit.SlickEdit 0x0000000100cb9408 slickedit::SEListTagsThread::runAsTagger() + 440
9 com.slickedit.SlickEdit 0x000000010102c683 cmThread::ThreadStartRoutine(void*) + 19
10 libsystem_pthread.dylib 0x00007fff9316e2fc _pthread_body + 131
11 libsystem_pthread.dylib 0x00007fff9316e279 _pthread_start + 176
12 libsystem_pthread.dylib 0x00007fff9316c4b1 thread_start + 13
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000000010354aee0 rcx: 0x0000000100f5c7f4 rdx: 0x00007fff5fbfb280
rdi: 0x000000010354aee0 rsi: 0x0000000000000000 rbp: 0x00007fff5fbfadc0 rsp: 0x00007fff5fbfadb0
r8: 0x00007fff5fbfb280 r9: 0x0000000002faf080 r10: 0x0000000000000001 r11: 0x0000000000000246
r12: 0x0000000101918dcc r13: 0x0000000000000002 r14: 0x000000010354aee0 r15: 0x00007fff5fbfb388
rip: 0x0000000100f5c788 rfl: 0x0000000000010246 cr2: 0x0000000000000068
Logical CPU: 4
Error Code: 0x00000004
Trap Number: 14
Binary Images:
0x100000000 - 0x1018adfdf +com.slickedit.SlickEdit (19.0.0 - 19.0.0.14) <AE16CC09-9979-333E-98D6-E75E9CEF5F3B> /Applications/SlickEdit2014.app/Contents/MacOS/vs
0x10254d000 - 0x102827ff7 +QtCore (4.8 - 4.8) <1F9B18AC-D00D-DF75-21A2-73D7486626D5> /Applications/SlickEdit2014.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore
-
Did you try the load (Macro>Load Module...) the new wkspace.e I posted here http://community.slickedit.com/index.php/topic,10843.0.html (http://community.slickedit.com/index.php/topic,10843.0.html). That should fix the open file problem (at least it did for me).
-
Sorry Clark, yes, finally I got it to work, I'm not that familiar with the mac platform and initially I was looking for the existing macro folders to reload it - then I loaded the one attached from the previous post and poof! the files appeared, nice one. Now if only the Add Java java doc comments would not obliterate my current comments I would be ready to move foward from 2013 - I reported this before
/**
* Search rModuleLoadLists for all associated channels.<p>
*
* Each ModuleLoadList has a priority field that contains the a
* channel number specified in the szPriority field. This
* method searches each ModuleLoadList for the channel number
* and also determines the sync status of the ModuleLoadList.
* Finally, depending on the value of the
* <code>rSyncStatus</code> parameter, the method returns a list
* of channels and their associated NIC addresses that match the
* sync status
*
* Prior to loading, this method is called with the
* <code>rSyncStatus</code> set to true so that each of the
* returned channels can have the 'channel setup' command sent
* to it.
*
* @param rSyncStatus
* [in] return a list of all channels that their
* sync status across all module list lists set to
* this value.
* @param rModuleLoadListInfo
* [in] vector of ModuleLoadList smart pointers,
* each of these also contains the ModuleName,
* Module IP, NIC address and PriorityLevel.
* @param rLogMessage
* [out] log message to display the channel sync
* info
*
* @return list of channels and their corresponding NIC
* addresses to be used for channel setup or cleanup
* commands.
*/
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
const ModuleLoadList::SyncStatus& rSyncStatus,
const ModuleLoadListInfo& rModuleLoadListInfo,
std::string& rLogMessage) const
{)
typing and accepting via Ctrl+Shift+D the above code converts it into the following where it looses the association between my previous @param comments and the news ones - althought clearly the names have not changed. That reminds me, if I did change the names, all my previous @param oldname comments would disappear. I think it is important to never loose existing comments - and if the parameter happened to change at least flag it in the commented area so that the user can fix it afterwards.
Looking forward to the official release, I presume the loadmodule workaround will not be required for the final release for the mac.
John
/**
* Search rModuleLoadLists for all associated channels.<p>
*
* Each ModuleLoadList has a priority field that contains the a
* channel number specified in the szPriority field. This
* method searches each ModuleLoadList for the channel number
* and also determines the sync status of the ModuleLoadList.
* Finally, depending on the value of the
* <code>rSyncStatus</code> parameter, the method returns a list
* of channels and their associated NIC addresses that match the
* sync status
*
* Prior to loading, this method is called with the
* <code>rSyncStatus</code> set to true so that each of the
* returned channels can have the 'channel setup' command sent
* to it.
*
* @param rSyncStatus
* [in] return a list of all channels that their
* sync status across all module list lists set to
* this value.
* @param rModuleLoadListInfo
* [in] vector of ModuleLoadList smart pointers,
* each of these also contains the ModuleName,
* Module IP, NIC address and PriorityLevel.
* @param rLogMessage
* [out] log message to display the channel sync
* info
*
* @return list of channels and their corresponding NIC
* addresses to be used for channel setup or cleanup
* commands.
*
* mapping of channel to in-sync flag
* @param rSyncStatus
* @param rModuleLoadListInfo
* @param rLogMessage
*
* @return
*/
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
const ModuleLoadList::SyncStatus& rSyncStatus,
const ModuleLoadListInfo& rModuleLoadListInfo,
std::string& rLogMessage) const
-
RC5 is most likely the final release. This fix will likely go into the first set of hot fixes.
-
Thanks, but it is a shame that the JavaDoc is so badly regressed since 2013 (which I presume will be addressed in the first update). I will have to wait for the first update to use it as that is the reason I generally use the product these days.
All the best
John
-
Being naturally stubborn and loving Visual Slick-edit's java doc feature I think I isolated the problem to the content of the method that is being javadoc'd. In a nutshell, the first line of code cannot be "//" style C++ a comment in a method - that should be easy to fix right?
John
with the following code:
/**
* Search rModuleLoadLists for all associated channels.<p>
*
* Each ModuleLoadList has a priority field that contains the a
* channel number specified in the szPriority field. This
* method searches each ModuleLoadList for the channel number
* and also determines the sync status of the ModuleLoadList.
* Finally, depending on the value of the
* <code>rSyncStatus</code> parameter, the method returns a list
* of channels and their associated NIC addresses that match the
* sync status
*
* Prior to loading, this method is called with the
* <code>rSyncStatus</code> set to true so that each of the
* returned channels can have the 'channel setup' command sent
* to it.
*
* @param rSyncStatus
* [in] return a list of all channels that their
* sync status across all module list lists set to
* this value.
* @param rModuleLoadListInfo
* [in] vector of ModuleLoadList smart pointers,
* each of these also contains the ModuleName,
* Module IP, NIC address and PriorityLevel.
* @param rLogMessage
* [out] log message to display the channel sync
* info
*
* @return list of channels and their corresponding NIC
* addresses to be used for channel setup or cleanup
* commands.
*
*/
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
const ModuleLoadList::SyncStatus& rSyncStatus,
const ModuleLoadListInfo& rModuleLoadListInfo,
std::string& rLogMessage) const
{
// mapping of channel to in-sync flag
std::map<int32_t, ModuleLoadList::SyncStatus> channelSyncInfo;
for (const auto& next : rModuleLoadListInfo) {
auto channel = next->getPriorityLevel().getChannel();
auto syncStatus = next->getSyncStatus();
auto res = channelSyncInfo.insert(
std::make_pair(channel, syncStatus));
// test if this is a new key value pair
if (!res.second) {
// key value pair already present - selectively update
if ((res.first->second == ModuleLoadList::SyncStatus::EMPTY) &&
(syncStatus != ModuleLoadList::SyncStatus::EMPTY)) {
// channel no longer empty - either INSYNC or PENDING
channelSyncInfo[channel] = syncStatus;
}
}
}
std::vector<ChannelNICPair> channelNICInfo;
// update the channels with either bSyncdChannels or channels
// with at least 1 module out of sync (containing a pending syncStatus).
std::for_each(channelSyncInfo.cbegin(), channelSyncInfo.cend(),
[&](const std::map<int32_t, ModuleLoadList::SyncStatus>::value_type& next) {
const auto& iter = std::find_if(
rModuleLoadListInfo.cbegin(), rModuleLoadListInfo.cend(),
[&](const ModuleLoadListInfo::value_type& rNext){
return rNext->getPriorityLevel().getChannel() == next.first;
});
if (iter != rModuleLoadListInfo.cend()) {
const auto& nicAddress = (*iter)->getModuleNICAddr();
// handle the dmu case where we have an empty NIC address
if (!nicAddress.empty()) {
switch (rSyncStatus) {
// All MLLists in this channel must be EMPTY
case ModuleLoadList::SyncStatus::EMPTY:
break;
// All MLLists in this channel must be INSYNC or EMPTY
case ModuleLoadList::SyncStatus::INSYNC:
break;
// search for at least 1 MLList with PENDING sync status
case ModuleLoadList::SyncStatus::PENDING:
default:
break;
}
if (rSyncStatus == ModuleLoadList::SyncStatus::INSYNC) {
} else { // update channels regardless of sync status
channelNICInfo.push_back(std::make_pair(next.first, nicAddress));
}
}
}
});
// format the rLogMessage
std::stringstream temp;
temp << std::string(bSyncdChannels? "in-sync" : "out-of-sync") << " channel(s): [";
for (auto iter = channelNICInfo.cbegin();
iter != channelNICInfo.cend();) {
if (iter != channelNICInfo.cend() - 1) {
temp << iter->first << ", ";
} else {
temp << iter->first;
}
++iter;
}
temp << "]";
rLogMessage = temp.str();
return channelNICInfo;
}
The parameters in the JavaDoc editor are always empty,
however with an empty body the parameters are correct, in the end I isolated the problem down to the following works (use of C type /* */ comments in the first line of the body:
/**
* Search rModuleLoadLists for all associated channels.<p>
*
* Each ModuleLoadList has a priority field that contains the a
* channel number specified in the szPriority field. This
* method searches each ModuleLoadList for the channel number
* and also determines the sync status of the ModuleLoadList.
* Finally, depending on the value of the
* <code>rSyncStatus</code> parameter, the method returns a list
* of channels and their associated NIC addresses that match the
* sync status
*
* Prior to loading, this method is called with the
* <code>rSyncStatus</code> set to true so that each of the
* returned channels can have the 'channel setup' command sent
* to it.
*
* @param rSyncStatus
* [in] return a list of all channels that their
* sync status across all module list lists set to
* this value.
* @param rModuleLoadListInfo
* [in] vector of ModuleLoadList smart pointers,
* each of these also contains the ModuleName,
* Module IP, NIC address and PriorityLevel.
* @param rLogMessage
* [out] log message to display the channel sync
* info
*
* @return list of channels and their corresponding NIC
* addresses to be used for channel setup or cleanup
* commands.
*
*/
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
const ModuleLoadList::SyncStatus& rSyncStatus,
const ModuleLoadListInfo& rModuleLoadListInfo,
std::string& rLogMessage) const
{
/* mapping of channel to in-sync flag */
}
and the following c++ // comment style fails
/**
* Search rModuleLoadLists for all associated channels.<p>
*
* Each ModuleLoadList has a priority field that contains the a
* channel number specified in the szPriority field. This
* method searches each ModuleLoadList for the channel number
* and also determines the sync status of the ModuleLoadList.
* Finally, depending on the value of the
* <code>rSyncStatus</code> parameter, the method returns a list
* of channels and their associated NIC addresses that match the
* sync status
*
* Prior to loading, this method is called with the
* <code>rSyncStatus</code> set to true so that each of the
* returned channels can have the 'channel setup' command sent
* to it.
*
* @param rSyncStatus
* [in] return a list of all channels that their
* sync status across all module list lists set to
* this value.
* @param rModuleLoadListInfo
* [in] vector of ModuleLoadList smart pointers,
* each of these also contains the ModuleName,
* Module IP, NIC address and PriorityLevel.
* @param rLogMessage
* [out] log message to display the channel sync
* info
*
* @return list of channels and their corresponding NIC
* addresses to be used for channel setup or cleanup
* commands.
*
*/
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
const ModuleLoadList::SyncStatus& rSyncStatus,
const ModuleLoadListInfo& rModuleLoadListInfo,
std::string& rLogMessage) const
{
// mapping of channel to in-sync flag
}
-
Thanks for narrowing that down. I wasn't able to reproduce the problem with your original example.
-
It is quite subtle ;) Another annoyance )and this might be user error, is when I do successfully javadoc the block of code it ends up as the JavaDoc editor inserts double paragraph marks where it tries to pull together 2 paragraphs.
/**
* Search rModuleLoadLists for all associated channels.<p><p>
* Each ModuleLoadList has a priority field that contains the a
* channel number specified in the szPriority field. This
* method searches each ModuleLoadList for the channel number
* and also determines the sync status of the ModuleLoadList.
* Finally, depending on the value of the
* <code>rSyncStatus</code> parameter, the method returns a list
* of channels and their associated NIC addresses that match the
* sync status<p>
* Prior to loading, this method is called with the
* <code>rSyncStatus</code> set to true so that each of the
* returned channels can have the 'channel setup' command sent
* to it.
*
* @param rSyncStatus
* [in] return a list of all channels that their
* sync status across all module list lists set to
* this value.
* @param rModuleLoadListInfo
* [in] vector of ModuleLoadList smart pointers,
* each of these also contains the ModuleName,
* Module IP, NIC address and PriorityLevel.
* @param rLogMessage
* [out] log message to display the channel sync
* info
*
* @return list of channels and their corresponding NIC
* addresses to be used for channel setup or cleanup
* commands.
*/
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
const ModuleLoadList::SyncStatus& rSyncStatus,
const ModuleLoadListInfo& rModuleLoadListInfo,
std::string& rLogMessage) const
{
}
Not that now is the time, but one really nice feature would be the ability to put <code></code> blocks around recognized parameter or exception fields - or however JavaDoc is supposed insert references to parameters within the comments. This could either be done via a popup when a word is selected while directly editing the comments or within the Java Doc editor (more likely). Also note that the exception is not captured in the parameters field (I know it is not a parameter but it would be nice to be able to edit it within the java doc editor. Also the column that the @exception comments wrap at is different to the parameters - this behaves differently to return values that seem to wrap at the same indented column as the parameters.
John
/**
* Runs the channel setup or cleanup commands for the modules
* specified in <code>rChannelParams</code><p>.
*
* @param rOperation
* [in] ChannelReset or ChannelSetup.
* @param rChannelParams
* [in] channel setup/cleanup parameters.
* This includes a pointer to the MLF and a
* vector of tuples containing the module name,
* module IP address, NIC address and priority
* field.
* @throws SLDBCommandException
* thrown if any of the channel setup or cleanup
* commands fail. Note that all channel setup and
* cleanup commands are attempted first and error
* information is accumulated
*/
/*static*/
void
SLDBProtocol::handleChannelCommands(
const ChannelOperation& rOperation,
const SLDBChannelParams& rChannelParams)
{
-
The problems with the duplicated <p> and the extra empty parameters being added to the comment have been fixed for the next build or the first hotfix. Thanks for the examples that reproduced it.
One thing I couldn't reproduce is losing the parameter comments if I rename the parameters. Whenever I change the parameter names, the comments for the old params are still there, and marked as 'obsolete'. So you can copy and paste them to the new parameter names. If there's a case where you can get that to happen with a particular comment, send it along.
Marking up references to parameters automatically with <code> sounds like a good feature.