@Override public Preferences createPreferences(MimePath mimePath) { synchronized (INSTANCES) { PreferencesImpl prefs = INSTANCES.get(mimePath); if (prefs == null) { prefs = new PreferencesImpl(this, mimePath.getPath()); INSTANCES.put(mimePath, prefs); } return prefs; } } };
@Override public TypedTextInterceptor createTypedTextInterceptor(MimePath mimePath) { assert mimePath.getPath().equals(MIMENames.FORTRAN_MIME_TYPE); return new TypedTextInterceptorImpl(); }
private List<Object []> scan(MimePath mimePath, String profile, boolean scanModules, boolean scanUsers) { Map<String, List<Object []>> files = new HashMap<String, List<Object []>>(); SettingsType.getLocator(storageDescription).scan(baseFolder, mimePath.getPath(), profile, true, scanModules, scanUsers, mimePath.size() > 1, files); assert files.size() <= 1 : "Too many results in the scan"; //NOI18N return files.get(profile); }
@Override public void afterLoad(Map<String, TypedValue> map, MimePath mimePath, String profile, boolean defaults) { if (mimePath.size() == 1) { if (LanguagesManager.getDefault().isSupported(mimePath.getPath())) { // this is a Schliemann language if (!map.containsKey(SimpleValueNames.CODE_FOLDING_ENABLE)) { map.put(SimpleValueNames.CODE_FOLDING_ENABLE, new TypedValue("true", Boolean.class.getName())); //NOI18N } } } }
@Override public void afterLoad(Map<String, TypedValue> map, MimePath mimePath, String profile, boolean defaults) { if (mimePath.size() == 1) { if (null != LanguageRegistry.getInstance().getLanguageByMimeType(mimePath.getPath())) { // this is a GSF language if (!map.containsKey(SimpleValueNames.CODE_FOLDING_ENABLE)) { map.put(SimpleValueNames.CODE_FOLDING_ENABLE, new TypedValue("true", Boolean.class.getName())); //NOI18N } if (!map.containsKey("word-match-match-case")) { //NOI18N map.put("word-match-match-case", new TypedValue("true", Boolean.class.getName())); //NOI18N } if (!map.containsKey("reindent-with-text-before")) { //NOI18N map.put("reindent-with-text-before", new TypedValue("false", Boolean.class.getName())); //NOI18N } if (!map.containsKey("abbrev-reset-acceptor")) { //NOI18N map.put("abbrev-reset-acceptor", new TypedValue(getClass().getName() + ".getAbbrevResetAcceptor", "methodvalue")); //NOI18N } } } }
Map<K, V> linkedMap = load(linkedMimePath, profile, defaults); map.putAll(linkedMap); LOG.fine("Adding linked '" + storageDescription.getId() + "' from: '" + linkedMimePath.getPath() + "'"); //NOI18N } else { if (LOG.isLoggable(Level.WARNING)) { LOG.warning("Linking to other than top level mime types is prohibited. " //NOI18N + "Ignoring editor settings link from '" + mimePath.getPath() //NOI18N + "' to '" + linkedMimePath.getPath() + "'"); //NOI18N StorageReader<? extends K, ? extends V> reader = storageDescription.createReader(settingFile, mimePath.getPath());
@Override public List<CompletionProposal> complete(CodeCompletionContext ccContext, CompletionContext jsCompletionContext, String prefix) { if (!MIMETYPE.equals(ccContext.getParserResult().getSnapshot().getMimePath().getPath())) { // we are interested only in html documets return Collections.emptyList(); } TokenSequence<HTMLTokenId> htmlTs = getHtmlTs(ccContext); if (htmlTs == null) { return Collections.emptyList(); } List<CompletionProposal> result = new ArrayList<>(); // this should be document offset htmlTs.move(ccContext.getCaretOffset()); if (htmlTs.movePrevious()) { AngularContext angularContext = findHtmlContext(htmlTs); switch (angularContext) { case CONTROLLER: if (jsCompletionContext == CompletionContext.GLOBAL) { result.addAll(findControllerNames(ccContext)); } break; default: } } return result; }
final String mimePathString = mimePath.getPath(); final String settingFileName = SettingsType.getLocator(storageDescription).getWritableFileName( mimePathString, profile, null, defaults);
if (embedded != null) { String embeddedMimeType = MimePath.parse(embedded.languagePath().mimePath()).getPath(); Color bg = null; Color fg = null;
private synchronized Formatter getFormatter() { if(formatter == null) { // XXX: Carefull here, generally context.mimePath() != mimeType. This // task's factory was created for a top level language (mimeType), but the task // itself can be used for an embedded language. // If the task is used for the document itself (not an embedded // section) Context.mimePath() == mimeType. // However, if it is used for an embedded section the Context.mimePath() gives // the mime path (languege path) of that section. Which is generally // something like 'application/x-httpd-eruby/text/x-ruby'. While the // task was registered for 'text/x-ruby'. // Therefore with the __current__ implementation of MimeLookupInitializerImpl // we can simply take the last component of Context.mimePath(). MimePath mimePath = MimePath.parse(context.mimePath()); String mimeType = mimePath.size() > 1 ? mimePath.getMimeType(mimePath.size() - 1) : mimePath.getPath(); Language language = LanguageRegistry.getInstance().getLanguageByMimeType(mimeType); formatter = language.getFormatter(); } return formatter; } }
private synchronized Formatter getFormatter() { if (formatter == null) { // XXX: Carefull here, generally context.mimePath() != mimeType. This // task's factory was created for a top level language (mimeType), but the task // itself can be used for an embedded language. // If the task is used for the document itself (not an embedded // section) Context.mimePath() == mimeType. // However, if it is used for an embedded section the Context.mimePath() gives // the mime path (languege path) of that section. Which is generally // something like 'application/x-httpd-eruby/text/x-ruby'. While the // task was registered for 'text/x-ruby'. // Therefore with the __current__ implementation of MimeLookupInitializerImpl // we can simply take the last component of Context.mimePath(). MimePath mimePath = MimePath.parse(context.mimePath()); String mimeType = mimePath.size() > 1 ? mimePath.getMimeType(mimePath.size() - 1) : mimePath.getPath(); Language language = LanguageRegistry.getInstance().getLanguageByMimeType(mimeType); formatter = language.getFormatter(); } return formatter; }