Lively Kernel canvas
//
Daftsymbolindexlistthesymbolindexlistshouldbeusedfor-tabcompletion-browsingofsources-...?problem1:synchronization-everytimesourcecodeischangedlistneedstobeupdated-->createliston-demand?-whatifmutliplepeopleareworkinginthewiki-->listissharedresourceandconflictscanoccurwhensynchronizingproblem2:Usenamespacesorsourcesorbothforgeneratingthelist?-ifonlynamespacesareused,listcanprobablycreatedon-demand-browsersupportnotpossiblewhenonlynamespacesareused-whathappenswhencurrentlyloadednamespacesdon'thavethesameinformationasparsedsources?(e.g.userdeletedDummyClass>>m1but#m1isstillpresentinsourcesorDummyClass>>m1isdefinedintwomodules?)Idea1-createlistfromlively.ide.FileFragments.ListofmoduleFileFragmentscanbeaccessedviaSourceControl.HerearefactoringoftheFileFragmentswouldprobablyhelpsincetheyuseatypefield.AproperAST-likeobjecttreeencapsulatingthetypes(modules,classes,methods,functions,...)wouldprobablybeusefulnotonlyfortheindexcreation...!related:doccreationLKFileParser.ometa:LKFileParser:functionDefhttp://www.lively-kernel.org/repository/webwerkstatt/codebaselocalLocalcode---------------AddmoduleLoadallLineNoRefreshEvalonSortViewas...
FileFragmenttypes:functionDefstaticPropertymethodModificationDefprotoDef--method/property/getter/setterklassDefklassExtensionDefobjectDefometaRuleDefometaDefcopDefcopSubElementcommentblankLineunknownFileFragmenttypeside.js:AnotherSourceDatabase(extension)http://www.lively-kernel.org/repository/webwerkstatt/lively/codebaselocalBase.jsbindings.js(notparsed)CanvasExpt.js(notparsed)ChangeSet.js(notparsed)Connector.js(notparsed)Contributions.js(notparsed)Core.jsData.js(notparsed)defaultconfig.js(notparsed)demofx.js(notparsed)EmuDom.js(notparsed)Examples.js(notparsed)Fabrik.js(notparsed)FileUploadWidget.js(notparsed)Graffle.js(notparsed)GridLayout.js(notparsed)Helper.js(notparsed)ide.jsJSON.js(notparsed)LayerableMorphs.js(notparsed)lk-js-parser.ometa(notparsed)LKFileParser.js(notparsed)LKFileParser.ometa(notparsed)LKWiki.js(notparsed)Localcodelocalconfig.js(notparsed)Main.js(notparsed)miniprototype.js(notparsed)Network.js(notparsed)obsolete.js(notparsed)Ometa.js(notparsed)phone.js(notparsed)Presentation.js(notparsed)rhino-compat.js(notparsed)scene.js(notparsed)Serialization.js(notparsed)simpleMain.js(notparsed)SmalltalkParser.js(notparsed)SmalltalkParser.ometa(notparsed)SmalltalkParserSupport.js(notparsed)Storage.js(notparsed)Styles.js(notparsed)TestFramework.js(notparsed)TestRunnerExtensions.js(notparsed)Text.js(notparsed)TileScripting.js(notparsed)Tools.js(notparsed)TouchSupport.js(notparsed)Undo.js(notparsed)WebPIM.js(notparsed)Widgets.js(notparsed)WikiParser.js(notparsed)WikiParser.ometa(notparsed)WikiWidget.js(notparsed)lively.ide.BasicBrowserlively.ide.BrowserPanellively.ide.BrowserNodelively.ide.BrowserCommandlively.ide.NodeFilterlively.ide.SortFilterlively.ide.NodeTypeFilterlively.ide.NodeTypeFilter(extension)lively.ide.SystemBrowserlively.ide.SystemBrowser(extension)lively.ide.LocalCodeBrowserlively.ide.WikiCodeBrowserlively.ide.SourceControlNodelively.ide.WikiCodeNodelively.ide.FileFragmentNodelively.ide.CompleteFileFragmentNodelively.ide.CompleteOmetaFragmentNodelively.ide.OMetaGrammarNodelively.ide.OMetaRuleNodelively.ide.ClassFragmentNodelively.ide.ObjectFragmentNodelively.ide.ClassElemFragmentNodelively.ide.FunctionFragmentNodelively.ide.ChangeNodelively.ide.ChangeSetNodelively.ide.ChangeSetClassNodelively.ide.ChangeSetClassElemNodelively.ide.ChangeSetDoitNodelively.ide.RemoteChangeSetNodelively.ide.CopFragmentNodelively.ide.CopRefineFragmentNodelively.ide.CopMemberFragmentNodeChangeSet(extension)ClassChange(extension)ProtoChange(extension)StaticChange(extension)DoitChange(extension)lively.ide.AllModulesLoadCommandlively.ide.ShowLineNumbersCommandlively.ide.RefreshCommandlively.ide.EvaluateCommandlively.ide.ChangesGotoChangeSetCommandlively.ide.SortCommandlively.ide.AddNewFileCommandlively.ide.BrowseWorldCommandlively.ide.ViewSourceCommandlively.ide.SaveChangesCommandlively.ide.ChangeSetMenuCommandlively.ide.ClassChangeMenuCommandlively.ide.ClassHierarchyViewCommandCodeParserJsParserJsParser(extension)OMetaParserlively.ide.ModuleWrapperlively.ide.ModuleWrapper(extension)AnotherSourceDatabaseAnotherSourceDatabase(extension)lively.ide(extension)lively.ide.FileFragmentide.FileFragment(extension)ide.FileFragment(extension)lively.ide.ParseErrorFileFragmentlively.ide.FileVersionViewercreateSymbolList(proto)-----AnotherSourceDatabase.addMethods({createSymbolList:function(){varallClasses=Global.classes(true)allClasses.lengthvarallClassNames=allClasses.collect(function(klass){returnklass.name/*localname*/})varnamespaces=[Global].concat(Global.subNamespaces(true))varnamespaceNames=namespaces.pluck('namespaceIdentifier')//bothprotoandstaticvarallMethodNames=allClasses.collect(function(klass){returnklass.localFunctionNames().concat(Functions.own(klass))}).flatten()varfunctionAndObjectNames=namespaces.collect(function(ns){varpropNames=[];for(varnameinns){varvalue=ns[name];if(!value||Class.isClass(value)||value.namespaceIdentifier)continue;propNames.push(name)}returnpropNames}).flatten();varsymbolList=allClassNames.concat(namespaceNames).concat(allMethodNames).concat(functionAndObjectNames);returnsymbolList;},});AddmoduleLoadallLineNoRefreshEvalonSortViewas...classesfunctionsobjectslist=lively.ide.SourceControl.createSymbolList()list.lengthFunctions.timeToRun(lively.ide.SourceControl.createSymbolList)SimplesymbolcreationWikicontrol