@@ -3928,7 +3928,7 @@ define("LiveDevelopment/LiveDevMultiBrowser", function (require, exports, module
39283928 * @param {Document} doc
39293929 */
39303930 function _onDocumentSaved(event, doc) {
3931- if (!isActive() || !_server) {
3931+ if (!isActive() || !_server || !_liveDocument ) {
39323932 return;
39333933 }
39343934
@@ -3959,7 +3959,7 @@ define("LiveDevelopment/LiveDevMultiBrowser", function (require, exports, module
39593959 * @param {Document} doc
39603960 */
39613961 function _onDirtyFlagChange(event, doc) {
3962- if (!isActive() || !_server) {
3962+ if (!isActive() || !_server || !_liveDocument ) {
39633963 return;
39643964 }
39653965
@@ -32635,6 +32635,217 @@ define("extensionsIntegrated/Phoenix-live-preview/utils", function (require, exp
3263532635
3263632636
3263732637
32638+ /*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
32639+ /*global define, $, brackets, window */
32640+
32641+ define("extensionsIntegrated/icons/main", function (require, exports, module) {
32642+
32643+ let fileUtils = require('file/FileUtils'),
32644+ ProjectManager = require('project/ProjectManager'),
32645+ LanguageManager = require("language/LanguageManager");
32646+
32647+ // use this cheetsheet for fontawesome icons https://fontawesome.com/v5/cheatsheet/free/brands
32648+ // or https://fontawesome.com/v5/cheatsheet/free/solid or https://fontawesome.com/v5/cheatsheet/free/regular
32649+ // or https://devicon.dev/
32650+ const languagesOrModes = {
32651+ folder: "fa-folder fa-solid",
32652+
32653+ css: "devicon-css3-plain",
32654+ htm: "devicon-html5-plain",
32655+ html: "devicon-html5-plain",
32656+ javascript: "devicon-javascript-plain",
32657+ typescript: "devicon-typescript-plain",
32658+ map: "fa-map-signs fa-solid",
32659+ 'js.map': "fa-map-signs fa-solid",
32660+ 'css.map': "fa-map-signs fa-solid",
32661+ xml: 'fa-code fa-solid',
32662+ jsx: 'fa-react fa-brands',
32663+ tsx: 'devicon-typescript-plain',
32664+ hbs: "devicon-handlebars-plain",
32665+ eot: "fa-font fa-solid",
32666+ woff: "fa-font fa-solid",
32667+ ttf: "fa-font fa-solid",
32668+ txt: "fa-file-alt fa-solid",
32669+ text: "fa-file-alt fa-solid",
32670+
32671+ json: "fa-cogs fa-solid",
32672+ yml: "fa-cogs fa-solid",
32673+ yaml: "fa-cogs fa-solid",
32674+ conf: "fa-cogs fa-solid",
32675+ config: "fa-cogs fa-solid",
32676+ plist: "fa-cogs fa-solid",
32677+ htaccess: "fa-cogs fa-solid",
32678+ htpasswd: "fa-cogs fa-solid",
32679+ project: "fa-cogs fa-solid",
32680+ org: "fa-cogs fa-solid",
32681+ properties: "fa-cogs fa-solid",
32682+
32683+ markdown: "devicon-markdown-original nocolor",
32684+ 'markdown (github)': "devicon-markdown-original nocolor",
32685+
32686+ python: "devicon-python-plain",
32687+ pyc: "devicon-python-plain",
32688+ pyd: "devicon-python-plain",
32689+ pyo: "devicon-python-plain",
32690+
32691+ php: "devicon-php-plain",
32692+
32693+ lua: "devicon-lua-plain",
32694+
32695+ gitignore: "devicon-git-plain",
32696+ gitattributes: "devicon-git-plain",
32697+ gitmodules: "devicon-git-plain",
32698+
32699+ sass: "devicon-sass-original",
32700+ scss: "devicon-sass-original",
32701+ less: 'fa-less fa-brands',
32702+
32703+ c: "devicon-c-plain nocolor",
32704+ cpp: "devicon-cplusplus-plain nocolor",
32705+ 'c++': "devicon-cplusplus-plain nocolor",
32706+ 'objective-c': "devicon-objectivec-plain nocolor",
32707+ kotlin: "devicon-kotlin-plain",
32708+ 'c#': "devicon-csharp-plain",
32709+
32710+ bat: "fa-file-code fa-solid",
32711+ sh: "fa-file-code fa-solid",
32712+ command: "fa-file-code fa-solid",
32713+
32714+ sql: "fa-file-code fa-solid",
32715+
32716+ java: "fa-java fa-brands",
32717+ jar: "fa-archive fa-solid",
32718+
32719+ 'erb_html': "devicon-ruby-plain",
32720+ ruby: "devicon-ruby-plain",
32721+ rbw: "devicon-ruby-plain",
32722+ rdoc: "devicon-ruby-plain",
32723+ haml: "devicon-rails-plain",
32724+
32725+ coffeescript: "devicon-coffeescript-original nocolor",
32726+
32727+ groovy: "devicon-groovy-plain",
32728+
32729+ clojure: "devicon-clojure-plain",
32730+
32731+ rust: "devicon-rust-plain nocolor",
32732+
32733+ styl: "devicon-stylus-original nocolor",
32734+
32735+ dart: "devicon-dart-plain",
32736+
32737+ npmignore: "fa-npm fa-brands",
32738+
32739+ scala: "devicon-scala-plain",
32740+
32741+ go: "devicon-go-plain",
32742+
32743+ swift: 'devicon-swift-plain',
32744+
32745+ sln: 'devicon-visualstudio-plain',
32746+
32747+ perl: 'devicon-perl-plain nocolor',
32748+
32749+ hs: 'devicon-haskell-plain nocolor',
32750+ lhs: 'devicon-haskell-plain nocolor',
32751+
32752+ // latex
32753+ latex: "devicon-latex-original nocolor",
32754+ tex: "devicon-latex-original nocolor",
32755+
32756+ psd: 'devicon-photoshop-plain',
32757+ ai: 'devicon-illustrator-plain',
32758+ image: 'fa-image fa-solid',
32759+ png: 'fa-image fa-solid',
32760+ ico: 'fa-image fa-solid',
32761+ jpg: 'fa-image fa-solid',
32762+ jpeg: 'fa-image fa-solid',
32763+ tiff: 'fa-image fa-solid',
32764+ gif: 'fa-photo-video fa-solid',
32765+ svg: 'fa-code fa-solid',
32766+
32767+ audio: 'fa-music fa-solid',
32768+ mp3: 'fa-music fa-solid',
32769+ wav: 'fa-music fa-solid',
32770+
32771+ avi: 'fa-film fa-solid',
32772+ mp4: 'fa-film fa-solid',
32773+ wmv: 'fa-film fa-solid',
32774+ mkv: 'fa-film fa-solid',
32775+ ogg: 'fa-film fa-solid',
32776+ webm: 'fa-film fa-solid',
32777+
32778+ gz: "fa-archive fa-solid",
32779+ '7z': "fa-archive fa-solid",
32780+ bzip: "fa-archive fa-solid",
32781+ zip: "fa-archive fa-solid",
32782+ rar: "fa-archive fa-solid",
32783+ tar: "fa-archive fa-solid",
32784+ tgz: "fa-archive fa-solid"
32785+ };
32786+
32787+ var files = {
32788+ 'gruntfile.js': 'devicon-grunt-plain',
32789+ 'gulpfile.js': 'devicon-gulp-plain',
32790+ 'package.json': 'fa-npm fa-brands',
32791+ '.eslintignore': 'devicon-eslint-original',
32792+ '.eslintrc.js': 'devicon-eslint-original'
32793+ };
32794+
32795+ function getExtension(filePath) {
32796+ filePath = filePath || '';
32797+ let pathSplit = filePath.split('.');
32798+ return pathSplit && pathSplit.length>1 ? pathSplit[pathSplit.length-1] : '';
32799+ }
32800+
32801+ var iconProvider = function (entry) {
32802+ let color = true;
32803+
32804+ let span = $('<span>');
32805+ span.addClass('bd-icon');
32806+ let el = $('<i>');
32807+ span.append(el);
32808+ el.addClass('fa-solid fa-file');
32809+
32810+ if (!entry.isFile) {
32811+ el.removeClass('fa-solid fa-file');
32812+ el.addClass(languagesOrModes.folder);
32813+ return span;
32814+ }
32815+
32816+ let ext = getExtension(entry.fullPath) || entry.name.substr(1);
32817+ let filename = fileUtils.getBaseName(entry.fullPath).toLowerCase();
32818+
32819+ if (files[filename]) {
32820+ el.removeClass('fa-solid fa-file');
32821+ el.addClass(files[filename]);
32822+ if(!files[filename].includes('nocolor') && color){
32823+ el.addClass('colored');
32824+ }
32825+ } else if (languagesOrModes[ext]) {
32826+ el.removeClass('fa-solid fa-file');
32827+ el.addClass(languagesOrModes[ext]);
32828+ if(!languagesOrModes[ext].includes('nocolor') && color){
32829+ el.addClass('colored');
32830+ }
32831+ } else{
32832+ let lang = LanguageManager.getLanguageForPath(entry.fullPath).getName().toLowerCase();
32833+ if(!languagesOrModes[lang]){
32834+ return span;
32835+ }
32836+ el.removeClass('fa-solid fa-file');
32837+ el.addClass(languagesOrModes[lang]);
32838+ if(!languagesOrModes[lang].includes('nocolor') && color){
32839+ el.addClass('colored');
32840+ }
32841+ }
32842+
32843+ return span;
32844+ };
32845+
32846+ ProjectManager.addIconProvider(iconProvider, -1);
32847+ });
32848+
3263832849/*
3263932850 * Copyright (c) 2019 - present Adobe. All rights reserved.
3264032851 *
@@ -32668,6 +32879,7 @@ define("extensionsIntegrated/Phoenix-live-preview/utils", function (require, exp
3266832879 * instead of default extensions folder.
3266932880 */
3267032881define("extensionsIntegrated/loader", function (require, exports, module) {
32882+ require("./icons/main");
3267132883 require("./InAppNotifications/main");
3267232884 require("./NoDistractions/main");
3267332885 require("./Phoenix-live-preview/main");
0 commit comments