=== About === Fortran CodeNav is a Visual Studio 2008/2010/2012 Add-in which helps you to navigate through Fortran 90 code. It contains several rudimentary parsers to generate a code structure representation which is used to provide jump-to and search functionality with limited context-awareness. Additionally it provides scope-aware code completion (Intellisense). It currently supports the following code elements/blocks: - modules - subroutines - functions - interfaces - types === Installation === 1) Create the 'Addins' folder under 'My Documents\Visual Studio 20##\' if it does not exist yet. 2) Place the contents of the installation package in the 'Addins' folder. (such that the FortranCodeNavAddIn.AddIn file is directly in the 'Addins' folder) 3) Run Visual Studio. The software is now ready to be used. If you encounter any issues during installation, please read the section 'Optional Installation Steps' in this file. === Usage === Fortran CodeNav is completely controlled using keyboard shortcuts and has no options dialog. Commands typically only work when you have a f90 document view open in Visual Studio. The definition of 'member' is: modules, subroutines, functions, interfaces and types. Commands: Ctrl-Q: Jump to declaration of member under (text) cursor Alt-Q: List usages of element under (text) cursor Ctrl-Space: Auto-complete statement, or show completion hints in list (Intellisense) Ctrl-Alt-Q: Search all code elements in solution Ctrl-Shift-Q: Search/list all members in current file Ctrl-Shift-Alt-Q: Search all files in solution Alt-Shift-Q: Synchronize solution explorer with currently open file The search dialog uses two types of text searches. It uses a case-insenstive 'starts-with' search and a second pattern search which takes the casing of the search term into account (see section 'Pattern Search'). Any member matching either search method is shown as search result. For ReSharper users: Fortran CodeNav does not use ReSharper, so a ReSharper installation is not required. The shortcuts however were chosen not to conflict with the ReSharper IDEA keymapping for those users who have both installed. === Change Keyboard Shortcuts === Should you really which to change the shortcut keys used by FortranCodeNav, you can do so in Visual Studio, under Tools->Options and then Environment->Keyboard. In the search box, type in FortranCodeNav and the applicable commands and their current shortcuts are listed. === Optional Installation Steps & Troubleshooting === In case the Fortran CodeNav add-in does not appear to work at all, please verify 'Fortran CodeNav' is listed in Visual Studio under 'Tools -> Add-in Manager' and its checkbox is checked, along with the checkbox for 'Startup'. Press Alt-F1, or find it under the 'Tools' menu, to bring up the Fortran CodeNav About dialog. If this dialog appears the tool has been installed successfully. Review the list of keyboard shortcuts for any conflicts with other Visual Studio functionality. If you had a prior version of Fortran CodeNav on your system, it may help to run 'reset_fortran_codenav.bat' (which should be present in the Visual Studio AddIn directory) to re-register the addin with Visual Studio. After running this script, please make sure the AddIn is enabled again in the Add-in Manager. If you have problems with keyboard shortcuts not working, you may want to reset your Visual Studio keyboard shortcuts under Tools->Options->Keyboard and restart Visual Studio. In case of other problems, such as certain files not appearing in the search results, you can have a look at the log file, located at: '%TEMP%\FortranCodeNav.log'. Most likely there is a parsing issue, in those cases please include the logfile and the offending f90 file in your error report. === Pattern Search === Pattern search is a method to quickly filter the results without typing out the entire search term. In the pattern search all uppercase letters are considered to be followed by any number of other letters while all lowercase letters must be an exact match. So the search term 'HL' would match 'hello' whereas the search term 'hl' would not. Expressed as a (case insensitive) wildcard pattern: hl = 'hl' HL = 'h*l*' The pattern search is useful to quickly find members by their acronym: Sobek = SBK boundaryconditions = BouCon wave_to_flow_status = WToFS Note for ReSharper users: unlike ReSharper, Fortran CodeNav does not take the casing of the member names into account.