Здравствуйте, Alekzander, Вы писали:
P>>Вы тут сначала повесили собак на микрософт, и вдруг такое — задачи не ставилось
A>Я сказал, что очень странно, когда одна компания выпускает две IDE, одну, типа, лайтовую, другую для профессионалов за деньги, и под каждую есть своя площадка с плагинами, и они не перекрываются, а плагины несовместимы.
Нету здесь ничего странного.
Можно попытаться повторить апи вижлы в вскоде — это затея близкая к невозможной, тк наверняка пол вижлы еще на COM с 90х. Предложите портировать ком на линукс и мак? Вообде портировать с Винды куда угодно чудовищно тяжело — микрософт 40 лет шел своим путем.
Соответственно и вижлу портировать — тоже адский труд, сравнимо с написанием самой вижлы.
Поэтому нет у Микрософта варианта 'две иде — одна экосистема'
Вот джетбрейнс со своей экосистемой тоже выдохлась — во всех иде одни и те же баги, фиксятся бывает годами.
Запустили fleet и тоже сломали плагины.
Это нормально — у архитектуры всегда есть ограничения. Все, что помогало в 90x теперь потеряло актуальность. И на кой черт держаться за архитектуру тех времен?
Здравствуйте, Pauel, Вы писали:
P>Можно попытаться повторить апи вижлы в вскоде — это затея близкая к невозможной, тк наверняка пол вижлы еще на COM с 90х. Предложите портировать ком на линукс и мак? Вообде портировать с Винды куда угодно чудовищно тяжело — микрософт 40 лет шел своим путем.
Совершенно неважно, на чём (COM, .Net, JS, Java или прерывания) написан API. Важно, чтобы МОДЕЛЬ более-менее совпадала. Для остального есть переходники. Чтобы не тестировать руками все сочетания, в сторе обычно указывают, что такой-то плагин не протестирован с такой-то версией приложения, всё на ваш страх и риск. Собственно, не раз доводилось видеть подобные ходы.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Conductor, Вы писали:
C>За 4,5 года в KDE ни разу не было. В Win было (и есть, в виртуалке) регулярно.
Я как раз поставил кубунту поиграться. Периодически, при нажатии на рестарт, окно подтверждения показывается не поверх остальных окон, а под ними. Такие дела.
Здравствуйте, Alekzander, Вы писали:
A>я испытываю чувство, что люди, которые её пишут, сами пользуются чем-то другим. Может быть, Эклипсом.
Студией они пользуются. Просто они знают ее на крайне поверхностном уровне. Впрочем, они вообще все знают только на крайне поверхностном уровне. Работа так организована, что по другому быть не может.
A>Последнее, с чем столкнулся. Когда тыкаешь в Next Bookmark на тулбаре много раз, НЕ НАДО тихо сдвигать на её место кнопку Add/Remove Bookmark. Особенно НЕ НАДО сдвигать их туда-сюда. Потому что через десять щелчков у тебя больше не останется закладок. Как так вышло? Поле ввода Target показывает имя файла, и в зависимости от длины имени меняет свою ширину, сдвигая остальные кнопки и тулбары. Поле ввода на тулбаре меняет свою ширину!!!1!111
Здравствуйте, Alekzander, Вы писали:
P>>Можно попытаться повторить апи вижлы в вскоде — это затея близкая к невозможной, тк наверняка пол вижлы еще на COM с 90х. Предложите портировать ком на линукс и мак? Вообде портировать с Винды куда угодно чудовищно тяжело — микрософт 40 лет шел своим путем.
A>Совершенно неважно, на чём (COM, .Net, JS, Java или прерывания) написан API. Важно, чтобы МОДЕЛЬ более-менее совпадала.
Это очень даже важно. Стоимость перехода .net — js довольно высокая, потому все операции которые вызываются часто, будут отжирать чудовищное время.
Модель и есть та самая архитектура, что тащится с 90х. Она оптимизировалась под те кейсы, и технологии того времени
Т.е. было удобно пилить inproc плагины. Соответственно в модели наверняка нарослу кучка операций, что вызываются с огромной частотой. Как только вы сюда вбрасываете маршаллинг js-.net, вы получите тормоза
А если в модели есть вещи, что все еще полагаются на шаред буферы или передачу по ссылке, это адский головняк
То есть, когда модель не проектировалась под кейсы взаимодействия с другими рантаймами, она естественным путем привязывается к одному единственному, тому самому
Здравствуйте, Pauel, Вы писали:
P>То есть, когда модель не проектировалась под кейсы взаимодействия с другими рантаймами, она естественным путем привязывается к одному единственному, тому самому
Именно так. Причем там такой ворох Legacy, от которого они и рады бы избавиться, а никак не могут.
Вот просто несколько, с ходу приходящих на ум примеров:
1. Архитектурно плагин может быть оформлен как VSPackage, MEF-компонент, Add-ins (не поддерживаются с VS2010).
И различия там радикальные и по тому, как работают, и для каких задач подходят, и как оформляются (регистрируются), ...
Причем частично они могут пересекаться. Например, MEF-компоненты исходно появились для расширений редактора кода в VS2010 и долгое время были доступны только там, но сейчас на них работает новая система поддержки проектов (хотя есть и старая), и наоборот — рекомендуемый способ добавить поддержку языка, это набор разных MEF-компонент, но можно и написать свой Language Service, который работает как VSPackage.
А еще есть некоторые расширения (я не знаю как так получилось!) которые вообще не относится ни к одному из вышеперечисленных. Например, визуализаторы для отладчика (это которые позволяют разными удобными способами посмотреть содержимое переменных)
2. Есть куча разных API, причем часть заморожено (вроде бы), а часть хоть и древнее, но продолжает развиваться.
— базовые Unmanaged интерфейсы. Это какой-то страшный вариант COM. Страшный в том смысле, что они очень общие и потому везде работают с VARIANT (Object), GUID-ами, константами, оформленными как uint (т.е. просто понять какие константы для чего — только через документацию)... и подобными вещами. Вот, например IVsHierarchy (это не сам исходный интерфейс, а его обертка в .Net, но от этого проблема только нагляднее) — некая базовая иерархия. Используется в основном для дерева проектов.
— Automation model (EnvDTE) изначально делали как упрощенную надстройку над первыми для написания макросов на VBA и Add-ins. В результате все по возможности стали работать через неё, т.к. она предоставляет не абстрактные, а понятные предметные интерфейсы. Для того же проекта там есть Solution, Project, ProjectItem, ...
— Для нового редактора кода появилось API на базе MEF. И для новых типов проектов VSProjectSystem аналогично.
— А еще отдельные API для отдельных специфичных элементов. Например, есть возможность делать расширения для JSON редактора, который сам является MEF-расширением для редактора кода
3. Есть вещи, использующие уже давно deprecated механизмы.
Например, связка между отлаживаемым процессом и IDE в .Net Framework строилась на базе BinaryFormater (который древний, проблемный и нерекомендуемый уже много лет), а начиная с .Net 5 перешли на формат на базе JSON.
Здравствуйте, Alekzander, Вы писали:
J>>Тоже не понял, не помешал бы пример. Попробовал скопировать из .rtf в .ts-ный файл, открытый в VS — всё заформатировалось под текущий формат.
A>Пример? Если вставить пару свойство: значение; из буфера в CSS, как при этом запретить студии удалять пустые строки (вертикальные пробелы) между группами свойств? Студия портит весь текущий скоуп (т.е. блок).
У меня всё вставляется, лишние пробелы — убираются. Правда, файл с расширением .scss, не знаю, есть ли разница.
A>Я вообще не нашёл настроек для языка CSS, кроме как полностью отключить format-on-paste.
В смысле, "не нашёл", а это вот?
Tools->Options->Text Editor->CSS
A>Конкретно с js-ом только сегодня налетел, но не на после вставки, а просто на дубовое переформатирование. Я случайно стёр апостроф, после чего нажал Enter, и студия тут же "отформатировала" _имена классов_ в селекторе (добавила пробелы вокруг минусов!). Если не успеешь заметить и нажать Ctrl + Z, а допишешь руками апостроф, потом ищи, где сломалось.
Ну да, надо следить, зато тут форматирование на лету делается. И да, в конце концов есть и анду, и репозиторная версия, с которой можно посрвнивать.
A>Ладно, рассказываю в пятый раз )) Нужно было посмотреть простую веб-страничку, но по http. Под VS Code есть очень популярный плагин, который, согласно описанию, запускает веб-сервер для открытого файла (плюс обновляет при редактировании). Под VS нет ни этого сервера, ни аналога.
A>У плагина, кстати говоря, 50М уников. Если бы я был в команде студии, я бы с такими цифрами заказал автору портирование. Или сам бы руками перенёс.
А что он может, этот плагин? Стайлшиты подхватывает? Ангуляр поддерживает? Если он только "простые" странички рендерит, то может, и View in Browser функция покатит?
Здравствуйте, Jester, Вы писали:
J>У меня всё вставляется, лишние пробелы — убираются. Правда, файл с расширением .scss, не знаю, есть ли разница. J>В смысле, "не нашёл", а это вот? J>Tools->Options->Text Editor->CSS
Мне надо, чтобы "лишние" пробелы НЕ убирались, потому что они не лишние. Ими отбиваются группы.
display: flex;
flex-direction: row;
<----- Не стирай меня, злая студия!
padding-left: 0px;
<----- Не стирай меня, злая студия!
margin-top: 10px;
margin-bottom: 10px;
<----- Не стирай меня, злая студия!
align-content: center;
Да, да, на этот счёт есть срач, должна ли группировка быть строго скоупной, или допустимы подгруппы с форматированием (пробелами). Или на другом уровне, тейлвинд-стайл утилиты vs. классы-монолиты (и то, и другое предпочтительнее в разных ситуациях). Но это в любом случае не студии решать.
J>Ну да, надо следить, зато тут форматирование на лету делается. И да, в конце концов есть и анду, и репозиторная версия, с которой можно посрвнивать.
Хотелось бы иметь подробный, понятный, а главное — полный диалог с правилами. Чтобы можно было по каждому виду реформата выставить значение из списка или "не трогать". Без этого как можно наслаждаться "зато тут форматирование на лету"?
J>А что он может, этот плагин? Стайлшиты подхватывает? Ангуляр поддерживает? Если он только "простые" странички рендерит, то может, и View in Browser функция покатит?
Я очень извиняюсь, но вы, ребята, по-моему, слышите только друг друга, а возражений не слышите. Или не хотите слушать.
Вы не можете написать обёртку над джаваскриптовой имплементацией, которая имплементирует нужные комовские интерфейсы? Или что?
Если у вас есть таблица сопоставлений, это делается джуном-первокурсником. А если там нечего сопоставлять, т.к. модели разные, то это плохо спроектировано. И это вы раздули до таких простыней текста?
И, кстати, все эти подробности про студию вообще не релевантны. Ну, она много умеет того, что не умеет и не будет уметь VS Code, дальше что? Вы покажите, что такого запутанного умеет VS Code, что не умеет студия, чтобы в возражении появился смысл. Только не говорите: "запускать плагины", ахахахах!
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
A>Вы не можете написать обёртку над джаваскриптовой имплементацией, которая имплементирует нужные комовские интерфейсы? Или что? A>Если у вас есть таблица сопоставлений, это делается джуном-первокурсником. А если там нечего сопоставлять, т.к. модели разные, то это плохо спроектировано. И это вы раздули до таких простыней текста?
Ну если это такая востребованная вещь и настолько проста в реализации, то наверное, есть смысл реализовать её и продавать?
Здравствуйте, Alekzander, Вы писали:
A>Глядя, как она постепенно деградирует (6.0, 7.0, 2003, 2005, 2008, 2010, 2013, 2019, 2022), я испытываю чувство, что люди, которые её пишут, сами пользуются чем-то другим. Может быть, Эклипсом.
Да, студия меня в последнее время тоже не очень радует. Все время какие-то мелкие трудности возникают ни с того ни сего, особенно если солющен большой.
Здравствуйте, Михаил Романов, Вы писали:
A>>Вы не можете написать обёртку над джаваскриптовой имплементацией, которая имплементирует нужные комовские интерфейсы? Или что? A>>Если у вас есть таблица сопоставлений, это делается джуном-первокурсником. А если там нечего сопоставлять, т.к. модели разные, то это плохо спроектировано. И это вы раздули до таких простыней текста? МР>Ну если это такая востребованная вещь и настолько проста в реализации, то наверное, есть смысл реализовать её и продавать?
А заодно продать интеграцию сторов. А то как юзеры узнают, что им теперь в студии доступны новые плагины от VS Code? Я, например, заходил в Mange Extensions..., и вводил там liveserver.
Так что на пути к богатству мне надо будет внести изменения в саму студию, и в фронт и бэк обеих площадок. А ещё у юридического отдела Майкрософт проконсультироваться на предмет, включили ли они в лицензию заливателя плагинов к VS Code пункт о возможности переиспользовать его на других сторах.
Ну, после этого дальше всё будет просто. Сатью вообще выгоняем взашей. Майкрософт переименовываем в Нью-Майкрософт, и он становится центром галактики.
Всё, дальше обсуждать студийные плагины я пас.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Alekzander, Вы писали:
A>А заодно продать интеграцию сторов. А то как юзеры узнают, что им теперь в студии доступны новые плагины от VS Code? Я, например, заходил в Mange Extensions..., и вводил там liveserver.
На сколько я могу судить, технически площадка стора одна.
Плагины не пересекаются в поиске исключительно в следствие указания разных фильтров.
Вот тут есть специальный репозиторий https://github.com/microsoft/vsmarketplace от инженеров, занятых поддержкой Marketplace, где можно оставить вопросы или предложения.
Например, в этом issue https://github.com/microsoft/vsmarketplace/issues/238 как раз обсуждается API для поиска расширений. Там даже есть пример (он, правда на Python, но достаточно прозрачный чтобы его можно было переиспользовать где угодно).
Т.е. я вижу это решение примерно так:
— в Visual Studio я ставлю ваш плагин, условный VS Code Extension Adapter
— у меня появляется аналог Extension Manager, но только для работы с расширениями VS Code
— я захожу в этот раздел, нахожу нужный плагин, он ставится не как обычный VS плагин, а в специальное пространство. Хотя может быть вариант, когда вы на лету сформируете специальный VSIX пакет с нужными обертками — тоже вариант.
— ну и при следующем запуске студии загружается этот обернутый плагин и всё работает.
A>Так что на пути к богатству мне надо будет внести изменения в саму студию, и в фронт и бэк обеих площадок.
Как я показал выше, менять серверную часть маркеплейса(ов) не нужно. А на стороне студии, если всё сводится к обертыванию интерфейсов и хостингу готовой JS Engine, можно спокойно работать через VS SDK — т.е. тем, что доступно обычным плагинам.
A>А ещё у юридического отдела Майкрософт проконсультироваться на предмет, включили ли они в лицензию заливателя плагинов к VS Code пункт о возможности переиспользовать его на других сторах.
Опять же в схеме, что описана выше, смены стора нет.
Возможно, могут быть ограничения на использование плагинов под разными IDE — надо изучить соглашения. Ну или попробовать задать вопрос по ссылке что я привел выше (канал поддержки от ребят из VS Marketplace).
A>Ну, после этого дальше всё будет просто. Сатью вообще выгоняем взашей. Майкрософт переименовываем в Нью-Майкрософт, и он становится центром галактики.
Ну из того, что я слышал, Сатья не особо заинтересован в развитии инструментов разработки — они в MS не особо прибыльные (в сравнении с другими продуктами). Но косвенно они влияют на продвижение этих продуктов, поэтому их и не забросили совсем.
Впрочем, может я и не прав — давно не интересовался.
J>>У меня всё вставляется, лишние пробелы — убираются. Правда, файл с расширением .scss, не знаю, есть ли разница. J>>В смысле, "не нашёл", а это вот? J>>Tools->Options->Text Editor->CSS
A>Мне надо, чтобы "лишние" пробелы НЕ убирались, потому что они не лишние. Ими отбиваются группы.
Тогда отключи Tools->Options->Text Editor->CSS->Advanced->Format on Paste (или Tools->Options->Text Editor->SCSS->Advanced->Format on Paste, если у тебя SCSS).
A>Хотелось бы иметь подробный, понятный, а главное — полный диалог с правилами. Чтобы можно было по каждому виду реформата выставить значение из списка или "не трогать". Без этого как можно наслаждаться "зато тут форматирование на лету"?
Отключи автоформаттинг тогда. Там же, в Advanced меню.
A>К сожалению, не покатит
Здравствуйте, Jester, Вы писали:
J>Тогда отключи Tools->Options->Text Editor->CSS->Advanced->Format on Paste
Процитирую своё первое сообщение: "Где настройки format-on-paste? Приходится отключать полностью".
J>из-за отсутствия только этой функции блеймить Студию... хм!
Я, вообще-то, много чего перечислил. И ещё больше не перечислил.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Михаил Романов, Вы писали:
МР>Ну если это такая востребованная вещь и настолько проста в реализации, то наверное, есть смысл реализовать её и продавать?
Подавляющее большинство пользователей просто хавает, что им дает мелко-мягкий. И посторонним людям пытаться это им продать — примерно ноль шансов.
Здравствуйте, Codealot, Вы писали:
C>Подавляющее большинство пользователей просто хавает, что им дает мелко-мягкий. И посторонним людям пытаться это им продать — примерно ноль шансов.
Я тоже всегда хотел понять, кто зарабатывает на платных расширениях к студии.
Причем их не так и мало (если смотреть по фильтру Free Trial).
Ну ладно практически отдельные продукты типа Resharper или Visual Assist, но остальные...
Хотя вот сейчас посмотрел — большая часть, это, похоже какие-то хэлперы (может те же шаблоны проектов или элементов) от производителей библиотек типа DevExpress или Syncfusion.
Здравствуйте, Alekzander, Вы писали:
A>Я, вообще-то, много чего перечислил. И ещё больше не перечислил.
Мнится мне, что Вы, батенька, зажрались! Особенно если вспомнить, на чём мы работали лет тридцать назад.
Прямо как моя старшая. Говорит, что ненавидит Торонто (в котором, на минуточку, прожила всю свою жизнь без двух лет). А нам с женой наоборот, всё по кайфу, ибо мы помним те места, в которых нам приходилось жить до этого