Как установить плагин XCode для кода автоматическое [закрытое] форматирование

Вы должны убрать все запятые из строки до того, как попытаетесь разобрать его, так как анализ числа с запятыми будет анализировать только до первой запятой.

//For example           Result
parseFloat("5,4,3")     // 5
parseFloat("15,000")    // 15
parseFloat("123,456")   // 123

Это можно сделать с помощью простой замены: .replace(/,/g,'');


Я также внес несколько изменений, чтобы привести в порядок:

    [ 1119] Сделал функцию, которая выполняет и replace, и parseFloat, называемые parseCurrency, чтобы сделать ее легко пригодной для повторного использования
  • Поместите ваше форматирование в функцию, называемую formatCurrency, чтобы сделать ее легко многократно используемой
  • Сделанные dec_balance и nov_balance входы могут совместно использовать событие, поскольку изменение любого из них должно привести к пересчету net

const formatCurrency = (str) => (""+str).replace(/[^\d.]/g, "").replace(/^(\d*\.)(.*)\.(.*)$/, '$1$2$3').replace(/\.(\d{2})\d+/, '.$1').replace(/\B(?=(\d{3})+(?!\d))/g, ",");
const parseCurrency = (str) => str.replace(/,/g,'');

$('input.inputdecimals').keyup(function(event) {
  if (event.which >= 37 && event.which <= 40) return;
  $(this).val((i,v) => formatCurrency(v));
});

$("#txt_balance_dec, #txt_balance_nov").keyup(function() {
  var bal_dec = parseCurrency( $("#txt_balance_dec").val() );
  var bal_nov = parseCurrency( $("#txt_balance_nov").val() );
  var result = bal_dec - bal_nov;
  $('#txt_nett_dec').val(formatCurrency(result));
});
input { display: block; margin: 10px 0;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Dec <input type="text" class="inputdecimals" id="txt_balance_dec" name="txt_balance_dec" value="0.00">
Nov <input type="text" class="inputdecimals" id="txt_balance_nov" name="txt_balance_nov" value="0.00">
Net <input type="text" class="inputdecimals" id="txt_nett_dec" name="txt_nett_dec" value="0.00" readonly>
[1128]

( Стоит также отметить, что ваша функция форматирования выглядит раздетой -, поэтому net будет абсолютным значением. ) [ 1126]

43
задан Bhargav Rao 5 February 2019 в 02:12
поделиться

4 ответа

По сообщениям bcpp работает просто великолепно на obj-c, и он имеет плагин TextMate, также.

1
ответ дан mkb 26 November 2019 в 23:03
поделиться

Частичный ответ - то, что некоторые небольшие вещи могут быть установлены из XCode как отступы с 2 пространствами. См. Предпочтения Добавления отступа в Руководстве Рабочей области XCode.

0
ответ дан mouviciel 26 November 2019 в 23:03
поделиться

XCode имеет встроенный модуль форматирования кода - он немного прост, но может переопределить ваш код. Сначала установите ваши настройки отступов в Xcode (, как подсказывает mouviciel ). Затем выберите источник, который вы хотите восстановить, и выберите «Правка | Формат | Повторный отступ.

Если вы хотите пойти дальше, у Hackertoys есть инструкции для добавления поддержки uncrustify в Xcode. Я не пробовал это.

8
ответ дан 26 November 2019 в 23:03
поделиться

Повозившись с несколькими внешними программами форматирования и слабым внутренним форматером xcode, я наконец остановился на uncrustify. Uncrustify имеет довольно хорошую поддержку Objective-C, может быть легко интегрирован с xcode в качестве пользовательского сценария и предоставляет централизованное средство форматирования практически для всех языков, которые изначально поддерживаются xcode.

Самым большим препятствием для xcode является сложный файл конфигурации. Моя рекомендация: возьмите один из предоставленных образцов конфигураций (ben2.cfg очень хорошо), объедините его с образцом objc.cfg и при необходимости измените его.

2
ответ дан 26 November 2019 в 23:03
поделиться