Latest release info at ICEcoder
v8 beta is an absolutely huuuggge release for ICEcoder. There wasn't supposed to be a major new release for a while, but more and more big features got added and it just kept getting bigger and better, certainly deserving to be a major new release and finally it got finished and is here to download and use. Here's some info detailing what's so great about the latest release - details of features and improvements...
v8.0 beta released
Huge update! Can't really stress that enough. So many new features, tweaks and fixes, this following ended up a big list as a result.
Git diff highlighting in gutter
Shows coloring for lines added, changed and removed compared to the last version in git repo.
Use ICEcoder anywhere - wwwroot, iFrame or any sub/dir/path
We had a lot of requests to use ICEcoder in an iFrame or another path, you can do that now.
Prettier code on save
Supercharged find and replace
Scrolls and selects in doc when typing in find input box, prev and next buttons and around 117x faster on large docs.
There's a lot of improved style updates in ICEcoder such as icons in tabs, highlighting dirs when dragging and more.
Tabs more linked to files so they update intelligently
If you move, rename or delete a file that you have open in a tab it reacts accordingly (renames itself or closes).
Welcome tour on arrival
ICEcoder looks very simple on the surface but is very powerful. A quick tour on arrival points out some useful areas.
Helpful requirements check on load in browser
ICEcoder checks you have all you need when starting up and anytime you take an action if there's a server issue it'll inform you.
Go to Line interaction is slick
Typing in goto line input box scrolls to that number, Enter to focus on editor.
Closes empty tabs more intelligently
Silently closes if cancelling a new file, close existing file tab with no changes or close empty new tab
Tool link alerting according to state
Git tool link green if files to commit. Clears when files committed. Output tool link red if Prettier parse error, click it to see info.
The smaller items
A lot of other small changes have been made in this version, too small to detail fully but worth noting, including...
Lots of things removed:
- Old test system has gone, new requirements system added
- Removed the doc explorer (minimap and function/class list)
- GitHub integration removed (incl manager)
- Code assist checkbox removed from UI
- Valid nesting/code errors indicator removed
- Source nav menu removed (Localhost and FTP gone)
Lots of things added:
- Page with info on requirements failure, rather tha raw message
- Settings nav menu added, direct links to 4 x tabs in modal
- Improved server info and username (if multi-user)
- Overhauled tab and file highlighting according to state
- Icons added to tabs based on file extension
- Tutorial on login setting added in Settings > Accounts
- Tips on login setting added in Settings > Accounts
For the style conscious:
- Scrollbars improved, customisable and consistent everywhere
- Improved results display bars onto vertical scrollbar
- Find & replace builder look modernised
- Default theme cursor is 2px wide yellow rather than 1px light grey
- Highlights dir when you drag dir/file over it or files within that dir
- Input and select focus changes background, not border around it
- Cursor for insert mode becomes an outline over character
- Many select menus in Settings > Style section now checkboxes
- Focused input fields now have blue background, white text
- Default theme - lighter text and comments dark grey & italic
- Modals focus on load, can press ESC to close
- Can press Enter in settings modal to submit changes
- Scrolls to and highlights result and matching results as you type in find input box
- Can now press Enter key in properties modal to submit
- Inform user if a failure to delete
- Only update file manager after a successful move/rename, not before actioned
- Provide error message if unable to move or rename
- Informs you if data data or a global or user settings file doesn't exist, isn't readable or writable
- Last 10 opened files list reversed so latest is top
There's been a lot of code tweaks too. So many we'll just list them as a block:
Find & replace: CTRL+F and CTRL+G to cycle finding, wraps over start and end of editor. From multiple results screen, click file, it will open, find & select in file and focus on find box. Find and replace only actions oninput, not onkeyup. results, resultsLines and findResult available on ICEcoder object. More efficient finding - doesn't bother finding if you don't have something to find in this document. Find also when typing in find input box with replace option showing. Params for findReplace function revised - find (string), and bools for selectNext, canActionChanges and findPrevious. Case insensitive matching now when finding. No longer setting editor contents to lowercase for matching, better perf now. Only show results in bar if each line is greater than 0.5px high, too difficult to see if less. Can find and replace backwards through document using prev button. Not using CodeMirrors getSearchCursor or findNext now, using ICEcoders own index lookup. More intelligent selection of result as you type/delete chars in find input box. Find results on switching tabs after 0ms to give instant switch, find within a few ms after, more performant switching. Only run extra processes if move or rename actioned successfully. Intelligent indexing Indexer considers timestamp of file, passed from browser and flag to indicate if changed. Only reindex on changes or unknown file datetimes, otherwise info that it hasn't changed. Don't index *.min.* files. Get declaration lines smarter by considering lang and varying syntax of declarations. Pickup function name & args much better. Don't index blank function/class names. Purposely exclude extend/implement as we index the actual classes. Consider prev data before deciding whether to index. Indexer outputs git diff info if there is some and there are file changes since last check. If we have git diff data, pick it up while indexing. Efficient detection of git diff changes via MD5 checksum of git diff output. Removed old to make way for new Removed strClean function and all uses of it such as filenames, replace value, settings, plugin name, username and password. test dir removed. Removed devMode. Array based settings & string manipulation replaced with serialized arrays. versionNo and docRoot now core settings that aren't alterable, in classes/Settings.php. Changed indentWithTabs boolean to indentType which can have strings "tabs" or "spaces". Better structure ice-coder.min.js removed, always using non minified now. CodeMirror not in own dir anymore (files within dirs in assets dir). backups dir now /data/backups. Classes added for _ExtraProcesses, Backup, File, FTP, Settings, System and URL. resets.css added to provide style reset foundations. assets dir added, containing images, JS and CSS (incl themes). Integrated file open with other XHR based code in new File class. Lots of new class methods added to handle global and user setting file details, get and set details. Tidy tidy Handle = char in args for tooltip. Tidy output for tooltip. icecoder, not ice-coder in all places now. Keys in lang files match English file now. Standardised formatting in lang files. Simplify code in a lot of areas. Chinese (simplified) language file completed. Starting to be stricter with === logic to avoid coercian. Beginning to use Yoda logic for defensive programming in many areas. ES6'ifying icecoder.js a little with let & const plus formatting & tweaks. Move editor.css to theme/icecoder.css and make default. Remove licenseEmail and licenseCode as no longer relevant in new versions. Uhhh that was wrong, is right now Better PHP version compare in requirements check. Improved IP address retrieval via getUserIP(). Allow non ASCII characters in values such as in filenames. Invalidate file cache before obtaining content or settings as ICEcoder is an app that updates file content a lot. Can now change tabs while save is processing. More helpful in a lot of areas Check requirements if issue creating config/settings, updating config/settings, IP restriction, PHP version. File list shown as clickable items in git diff modal, opens file. Info displayed in git diff panel on how to get it running. .mpy now recognised as a file extension, for MicroPython, aliased to Python. Check allow_url_fopen is enabled in requirements. setEditorStatus() function added. getThisCM() function added. Handle rename and setting path (and file if you wish) to another dir. Can rename path and/or file during rename. Mention and provide link to plugins at end of tutorial. Auto focus on login field after viewing multi-user info dialog.
We also got the virtual bug spray out and fixed:
ICEcoder version check. Checking of banned files. Update issue re password which now contains $ char due to Bcrypt. Position of split panel icons. Issue with iconv not being available for UTF8 BOM conversion, using mb_convert_encoding now. Color picker so you can insert color now. Display of markdown content in live preview window. Open/close dir display icon. File/dir traversing with arrow keys. Server message in bottom left corner no longer sticks on file action error. //'s issue in URL on login. "no data" bug for empty files opened. Context menu being far away from cursor when right clicking in file manager when it's scrolled vertically. Wrong backup count display in bottom left under editor pane. No results count display after clicking file name in multiple results display. Firing the find/replace twice when changing value of find input box. Issue with some regex chars input into find box causing JS error. Detection of languages when mixed in a file, eg a PHP file containing JS, PHP, HTML intertwined. Identification of HTML vs JS dependant on where cursor is. Clearing of selection when there was a find result and as you've altered find input box value there now isn't a result, now deselects (and so clears matching highlights also). Save of large content files, switch tab and it doesn't leave red x in saved tab you were on. Detection of OS you are running on. SelectFiles array emptying on updating file manager. Inability to move a dir/file to root level. Drag and drop of dirs/files. 777 perms being shown in red on dirs/files. CTRL + . shortcut to fold/unfold current line. Display issue opening backup version in new tab, split panes causing page to drift over to left. Selection box logic, deselect on starting box select. z-index reset on tab drag end. Separate thisFileFolderLink and thisFileFolderType away from tab selection and file opening, avoids sticky selection. Display of last 10 opened files. ICEcoder automatic reload after changing language in settings. Can now open JSON files without issue, content type is JSON ...and LOTS of other minor fixes & tweaks.